暂时未有相关云产品技术能力~
暂无个人介绍
1.二叉树最大深度🤔 链接:二叉树最大深度
存储设备的层次结构🤔 实际上,每个计算机系统中的存现虎设备都被组织成了一个存储器层次结构,想象一下网一个又大又慢的设备之间插入一个又小又快的存储设备,就是这种层次结构现在已经成为了一个普遍的概念,如下:
堆的概念与结构🤔 前面讲了二叉树的相关概念,堆就是把他的所有元素按照完全二叉树的顺序存储方式存储在一个一维数组中。堆可以用来解决堆排序,topk 问题,以后还会涉及到优先级队列。
树的的概念与结构🤔 树是个甚么?和现实中的数差不多,有根有茎有枝有叶,长的和向下延伸的树根差不多,也可以看成一棵倒立的树,==树是一种非线性数据结构,由 n(n>=0)个有限节点组成一个具有层次关系的集合,具象一下就类似这样:
信息就是上下文+位🤔 什么意思?比如我们一个最简单的hello world 程序,生命周期是从一个.c文件(源文件)开始的,源文件实际上是0和1组成的位序列,8个位为一组。
链表中倒数第k个结点🤔 链接:链表中倒数第k个结点
移除链表元素🤔
栈🤔 首先应该搞清楚的是什么的是栈,栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出 LIFO(Last In First Out)的原则。
正片开始🤣 我们知道双向循环带头链表是链表8种结构中的扛把子,那看起来最low的顺序表,可不可以不要呢? 答案是不能,首先我们一个明白两种结构是相辅相成的
和单链表比较🤔 之前我讲过了单链表,也就是单向不带头不循环链表,看起来和现在的这个简直天差地别,但是——没有关系,我们必须知道一点:
关键字volatile 和 const 一样是类型修饰符,修饰的变量表示可以被某些编译器未知的因素更改(操作系统,硬件,其他线程),编译器不对该数据做优化,特殊地址可访问。
什么是链表?🤔
正片开始👀 环境🤔 在ANSI的任何一种实现中,都存在两个不同的环境:翻译环境与执行环境
正片开始👀 昨天了解了文件操作我才知道我的编程习惯这么差,老实说之前应该先老老实实学完文件再去搞通讯录,不然根本没有给通讯录注入灵魂。
正片开始👀 这里为了方便对照,我搬出整个程序的前后修改版本,并分别作为静态和动态版本,实际差距并不大,提供出来只供君参考 🤔🤔动机🤔🤔 为什么要写一个通讯录?
正片开始👀 概念🤔 什么是位段?
正片开始👀 结构大小👏 我们先随便给出一个结构体,为了计算他的大小,我给出完整的打印方案:
正片开始👀 细化指针这一部分内容,现在着重把一些指针的运用情景搬出来康康,如果对指针盘的非常熟练了,或者指针还出于入门阶段的铁子请绕道(晕头警告) 直接给大家盘个套餐: 一维数组👏
正片开始👀 字符串函数👏 首先神魔是字符串函数?
正片开始👀 qsort👏 qsrot 就是C语言库函数中的快速排序函数,对数组,结构体都可以实现快速排序, 他在头文件<stdlib.h>中使用,声明格式为:
正片开始👀 LeetCode链接:https://leetcode-cn.com/problems/rotate-array/
正片开始👀 概念👏 说到动态规划,什么是动态规划?
正片开始👀 双指针👏 首先咱得知道何为双指针,听起来很上流,其实有手就行。
正片开始👀 可变参数👏 可变参数是C语言提供的一种参数可变的机制,咱希望函数带有可变数量的参数,而不是预定义数量的参数。它允许咱定义一个函数,能根据具体的需求接受可变数量的参数,比如这种:
正片开始👀 地址空间👏
正片开始👀 因为之前就写过关键字和操作符专题了,可能各位已经烂熟于心了,但某些细节方面我还是想拿出来讲一下,我们比较陌生的概念等等。
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
移除元素,大致看一下描述你会觉得很简单,不是和顺序表操作是一个道理嘛。但是,题目里的==“原地”和“O(1)”== 是不是格外显眼?仔细一想就会发现并不是有手就行。
正片开始👀 头插操作👏 继上一章内容,继续讲讲顺序表的基础操作。
正片开始👀 初始化👏 在初步认识顺序表这一结构后,我们就可以继续深入探究 这是我之前在.h文件中创建的结构体
正片开始👀 线性表👏 数据结构里我们时常看到什么什么表,线性表是最基本、最简单、也是最常用的一种数据结构,其他各种表的万恶之源就是这个线性表,他是个啥其实顾名思义:
正片开始👀 大多数情况下,我们所熟知的输入输出都是标准I/O(标准输入输出),也就是我们在写代码时会直接从键盘读取,从屏幕输出。但是当我们涉及到数据统计或者多组未定义内容输入时,我们的程序就会出现一些小问题
正片开始👀 时间复杂度👏 上一篇搞定了复杂度的相关概念,现在就可以直接上阵实战一手了,为什么要专门搞一个计算实践,因为不仅是工作,学校考试啊复杂度也是和算法直接挂钩的趁瓷器活没来赶紧磨磨咱的金刚钻。
正片开始👀 数据结构与算法👏 终于开始搞这块难啃的骨头了,走上这条漫漫长路之前要明白什么是数据结构?什么是算法?
正片开始👀 数据类型 👏
正片开始👀 C语言中数据类型的存储是较为严谨的,一块空间只能存储一种数据类型,要知道内存这个东西,在早期可是非常珍贵的。
正片开始👀 Bug👏 bug意为臭虫,计算机术语里就是幺蛾子,对,你的程序又出幺蛾子了。为什么要叫bug?关于这个还有段有趣的历史
正片开始👀 今天来讲讲我对栈帧创建与销毁的拙见。 理解什么是栈帧首先知道什么是栈:
正片开始👀 指针👏 指针提供了对地址操作的一种方法,因此,使用指针可使得 C 语言能够更高效地实现对计算机底层硬件的操作。另外,通过指针可以更便捷地操作数组。在一定意义上可以说,指针是 C 语言的精髓。
概念👏 所谓回文串,就是字符串反转以后和原串相同,如 abba 和 lippil。对于回文串还是比较容易去验证的,从字符数组的两端开始向中间靠拢去验证字符是否相等,但这里是否需要考虑字符数组长度的奇偶性呢?其实是不用的,下面一起来看看:
正片开始👀 ##补充:结构体👏 结构体变量的声明需要在主函数之上或者主函数中声明,如果在主函数之下则会报错,而且c语言中的结构体不能直接进行强制转换,只有结构体指针才能进行强制转换。 涉及结构体的操作符这里讲两个: . (结构体访问操作符) -> () 首先写一段代码:
正片开始👀 一雷不扫,何以扫天下? 今天主要是实现初级的扫雷游戏,方法比较通俗易懂,制作方面不侧重包装而注重功能实现,只是简单对“扫雷”进行简单表达,后期会进行优化和提升。
准备👏 今晚是个大工程,但是咱不急,工欲善其事,必先利其器,先来看看需要哪些“器”:
描述: 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
概念👏 咋说呢,我个人觉得这部分还是蛮重要的,首先是兴趣其次是压力,前面迷糊咯后面路就会走窄。 它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
描述👏 继汉诺塔问题之后,接下来就是青蛙跳台阶问题:说一只青蛙一次可以跳上1级,也可以跳上2级,求该青蛙跳上一个n级的台阶总共有多少种跳法。刚开始感觉像是在算阶乘,考虑先后次序不同算不同的结果嘛;看完才发现我格局低咯,这题其实蛮有意思。
问题👏 汉诺塔问题是经典的递归问题。汉诺塔问题是一个经典的问题,汉诺塔(Hanoi Tower)又称河内塔,源于印度一个古老传说:大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘,问该如何操作。
应用👏 递归与迭代,之前已经接触过n的阶乘,但代码显得比较老实,不能显现出C语言的灵活性,在引入递归后,我们就可以考虑更高级的情况。
基本思路👏 顾名思义,猜字游戏就是指系统给出一个随机值,我们去猜值,猜大猜小系统都会提示直到我们猜对,今天我们要去实现一个100以内的猜数字游戏。 我们首先要明确需要用到什么方法去实现: 1.C语言判断句:判断结果 2.循环语句:实现多次猜值 3.随机数函数:系统分配随机数 4.自义定函数:实现游戏主体部分运行 整活!👏
概念👏 什么是递归?网上用的例子是“从前有座山,山上有座庙……”,实际上程序调用自身的编程技巧就是递归,接地气一点就是套娃(包子馅的包子,它的极限是馒头)。