![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习心得
文章平均质量分 83
。TAT。
这个作者很懒,什么都没留下…
展开
-
C学习(数据结构)-->队列
由于单链表结构的特殊性,导致进行入队操作的时候,得先遍历一遍单链表,才能在队尾进行结点的插入,时间负复杂度为 O( n ) ,所以要建立一个新的结构体来保存单链表的第一个结点和最后一个结点,把时间复杂度降为 O(1) ,则优化后的队列结构。只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,遵循先进先出的结构。单链表的第一个结点当做队头,最后一个节点当做队尾,且单链表结点的结构。本文章通过单链表实现队列,单链表详情见。入队列:进行插入操作的一端叫作队尾。出队列:进行删除操作的一端叫做队头。原创 2024-07-28 14:26:00 · 403 阅读 · 0 评论 -
C学习(数据结构)-->栈
栈是一种特殊的线性表,只允许在固定的一段进行元素的插入和删除。进行数据插入和删除的一端称作栈顶,另一端称为栈底。栈的数据元素遵循后进先出的原则。压栈:栈的插入操作叫做 进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。栈一般通过数组(顺序表)或链表实现。本文章通过顺序表实现栈,顺序表详情见。原创 2024-07-22 07:42:25 · 348 阅读 · 0 评论 -
C学习(数据结构)-->单链表习题
当 N 为奇数时,(x+1)*C一定为奇数,即 C 为奇数,不存在step1中 N为奇数,C为偶数 的情况,则两指针一定会相遇。设慢指针为 slow ,快指针为 fast ,头结点到入环点的长度为 L,环的长度为 C ,则当 slow 到达入环点时,从 fast 到达 slow 的长度为 N ,则。此时变为追击问题,快指针一次走两步,慢指针一次走一步,没走一步,快慢指针之间的距离减一,即:N,N-1,N-2,N-3......3,2,1,0,两指针相遇。取快指针一次两步,慢指针一次一步,可得方程式。原创 2024-07-17 16:04:54 · 675 阅读 · 0 评论 -
C学习(数据结构)->单链表
pcur 获取头结点地址,通过 pcur 打印当前结点保存的数据。然后将当前结点保存的,下一结点的地址赋值给 pcur ,通过 pcur 继续往下打印。链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。当需要寻找到下一个结点时,只需要通过当前结点保存的 next 地址寻找到下一个结点。与顺序表不同的是,保存每一个数据都需要单独申请空间,每一个申请下来的空间称为结点。结点由要 保存的数据 和 下一个结点的地址 两部分组成。原创 2024-07-16 08:49:12 · 268 阅读 · 0 评论 -
C学习(数据结构)-->顺序表
顺序表空间不够时,插入数据一次就调用 realloc 函数扩容一次,当要插入数据增多时,就会浪费跟多的时间,时间复杂度会大大增加,所以使用倍数地扩容空间,多余的空间忽略不计。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般采用数组存储,对数组封装,实现了常用的增删查改等接口。线性表是n个具有相同特性的数据元素的有限序列,是在实际中广泛应用的数据结构。缺点:空间给少了不够用,给多又会造成空间浪费。静态顺序表是使用定长数组存储元素的顺序表。顺序表分为静态顺序表和动态顺序表。原创 2024-07-12 07:00:00 · 756 阅读 · 0 评论 -
C学习(数据结构)-->算法复杂度
在计算机科学中,算法的时间复杂度是一个函数式 T( N ) ,定量描述了算法的运行时间。时间复杂度是衡量程序的时间效率,而不是去计算程序的运行时间,因为在不同的环境下同一个程序的运行时间不同,且时间只能写好后测试,不能在写程序前进行理论上的思想计算评估。空间复杂度指的是对一个算法在运行中因为算法需要额外临时开辟的空间。空间复杂度计算规则基本和时间复杂度类似,也使用大O渐近表示法。原创 2024-07-11 11:08:24 · 472 阅读 · 0 评论 -
C语言学习—编译和链接
语义分析器对表达式的语法分析后进行的语义的静态分析。汇编器将汇编代码转变成机器指令,一个汇编语句对应一个机器指令,根据汇编指令和机器指令的对照表一一进行翻译,不做指令优化。扫描器对源程序进行词法分析,把代码中的字符分割成一系列的记号,即关键字、标识符、字面量、特殊字符等。将一堆文件链接在一起生成可执行程序,链接用于解决一个项目中多文件、多模块之间互相调用的问题。语法分析器度扫描产生的记号进行语法分析,产生以表达式为节点的语法数。在预处理阶段,源文件和头文件会被处理成 .i 为后缀的文件。原创 2024-06-10 03:30:04 · 392 阅读 · 0 评论 -
c语言学习—文件操作
程序文件和数据文件程序文件程序文件包括源程序文件(后缀为 .c ),目标文件(windows环境后缀为 .obj),可执行程序(windows环境后缀为 .exe)数据文件文件的内容不一定是程序,而是程序运行时读写的数据。原创 2024-06-09 18:31:09 · 969 阅读 · 0 评论 -
C语言学习—结构体
对齐数最大的是 int 类型的 b ,对齐数为 4 ,从上面来看结构体目前申请的内存为 9 个字节,不是 4 的整数倍,还要在扩大到 12 个字节,才是该结构体的总大小。第三个结构体成员 c 占 5 个比特位,空间不够取,所以假设原先剩余的那一个比特位的空间直接浪费,再向内存申请一个字节的空间,把 c 放进去。创建结构体变量时,为本身申请内存空间的同时,又为结构体变量内部的结构体变量申请空间,无限地申请空间下去,这样的变量是无穷大的。结构是值的集合,这些值称为成员变量,成员变量类型可以不同。原创 2024-05-25 23:36:43 · 784 阅读 · 0 评论 -
C语言学习—俄罗斯方块
define row 28 //游戏行数#define col 18 //游戏列数#define ROW row+2 //游戏方框行数,包括提示区等#define COL col+12 //游戏方框列数,包括提示区等//将方块旋转保存在dia中i < 4;i++)j < 4;j++)#define row 28 //游戏行数#define col 18 //游戏列数#define ROW row+2 //游戏方框行数,包括提示区和分数区。原创 2024-05-23 15:44:07 · 1394 阅读 · 1 评论 -
C语言学习—数据在内存中的储存
在计算机中,整形数据是用补码来储存的,因为CPU中只有加法器,而补码可以使加减法统一处理,而且补码和原码相互转换(负数是先对补码除符号位外的其他位进行按位取反,然后给反转后的数加1)的过程是相同的,不需要添加额外的硬件。对于64位的浮点数,最高的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效数字M。对于32位的浮点数,最高的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字M。指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。原创 2024-05-22 23:33:00 · 633 阅读 · 1 评论 -
C语言学习—内存函数
从source的位置开始向后复制num个字节的数据到destination指向的内存位置,且遇到 ' \0 ' 不会停下来,不支持source和destination重叠。原创 2024-05-19 19:43:37 · 230 阅读 · 1 评论 -
C语言学习—扫雷游戏:递归实现范围展开
扫雷游戏通过递归实现范围展开原创 2024-04-27 19:01:53 · 282 阅读 · 1 评论 -
C语言学习—扫雷游戏(尝试)
尝试用C语言实现扫雷游戏原创 2024-04-19 23:07:56 · 909 阅读 · 0 评论 -
C语言学习—分支与循环
C语言学习笔记—分支与循环原创 2024-04-19 23:07:25 · 994 阅读 · 0 评论