- 博客(19)
- 收藏
- 关注
原创 数据结构笔记|内核链表、队列、栈、二叉树、哈希表、算法复杂度全梳
container_of:已知结构体某个成员的指针,减去偏移量,得到整个宿主结构体的首地址,遍历的时候用来拿到我们真正的业务数据。整理嵌入式 / Linux C 开发高频数据结构,从内核侵入式链表,到队列、栈、二叉树,再到大 O 时间复杂度、常见排序算法。或者从下到上从右向左删除节点得到。链式队列 API:创建队列、入队、遍历、判空、出队、获取队头元素、销毁队列。链式栈 API:创建栈、入栈、出栈、判栈空、获取栈顶元素、清空栈、销毁栈。循环队列 API:创建、入队、遍历、判空判满、出队、获取队头、销毁。
2026-08-20 19:17:45
339
原创 *数据结构*
使用快慢指针法:从起点开始,快指针一次走两步,慢指针一次走一步,若快指针最终走到了NULL 的位置,说明链表无环;索引存储:将要存储的元素关键字和存储位置构建索引表,数据查找是通过查询索引表获取数。散列存储(哈希存储):将要存储的元素的关键字和存储位置之间建立起对应关系,这个关系。称为哈希函数,数据存储时,按照哈希函数的映射进行存储;从相遇点开始,让指针开始遍历链表,当该指针再次走到相遇点,则统计出了的个数为环长。一个指针从想遇点开始走,一个指针从头走,当两个指针再次相遇,则为环形的入口。
2026-08-18 23:45:06
166
原创 多文件管理
3. 如果要在一个外部的源文件中使用该全局变量,则该变量必须被声明;2. 如果只是在定义该全局变量的文件中使用该全局变量,可以不声明;= : 若变量之前有被赋过值,则保留原值。+= :在原变量值的基础上再增加新值。实现一键化工程的编译和链接。定义Makefile的变量。1. 在源文件中定义全局变量;若变量之前没有被赋过值,则赋新值。4. 在对应的头文件中加。关键字声明,声明全局变量不能初始化。:管理代码工程的编译和链接,由。
2026-08-13 18:43:29
206
原创 内存管理、位运算
< 按位左移 按位左移,低位补0 num << n <===> num * 2^n。>> 按位右移 按位右移动,有符号数高位补符号位;在函数中开辟的空间,希望随着函数结束,该空间任然存在,可以去堆上开辟。当需要的空间比较大时,可以去堆上开辟,栈区空间有限,默认8M。内存泄露:程序运行过程中,堆区申请的空间在使用完没有释放,则造成内存泄露。堆区由开发人员手动申请和释放,使用完时及时释放,否则造成内存泄露。gdb ./可执行程序。
2026-08-12 17:52:15
165
原创 构造数据类型
1. 枚举里面的成员都是枚举常量,都是整形常量,所以不需要写数据类型;3. 枚举中的枚举常量,类似于整形符号常量,可以直接被引用;如果要在被调函数中修改主调函数中的结构体变量,则传递结构体变量的地址;如果在被调函数中使用主调函数中定义的结构体变量,可以值传递,也可以传地址。结构体成员在内存中存储时,成员必须存储在自己字节大小的整数倍位置;小端:内存的高地址存储高字节位,内存的低地址存储低字节位;大端:内存的高地址存储低字节位,内存的低地址存储高字节位;声明结构体类型的同时,定义了一个变量,变量的变量名。
2026-08-12 17:41:44
202
原创 【无标题】C语言(指针)
指针数组:本质是数组,该数组中保存的是指针。语法:int a[5];int *a[5];int * :数组中保存的数据类型:该数组中保存的元素是int *指针[5] :该数组中可以保存5个指针(int *定义了一个可以保存5个整形指针的数组,整体占40个字节char *p[5];1.指针数组的定义指针类型 数组名元素个数;2.指针数组的初始化将5个字符型指针初始化成NULL;指针保存字符串常量"hello"的首地址。
2026-08-06 18:12:32
156
原创 C语言(指针)
被调函数想要返回多个结果时,可以传递主调函数定义的变量的地址,地址指向的空间可以保存被。野指针:未初始化或赋值的一个指针,或者指向一个已经释放的内存空间的指针。被调函数中,想要使用主调函数中定义的变量,可以传递值,也可以传递地址。被调函数中,想要修改主调函数中定义的变量,必须传递该变量的地址;指针:指针即为地址,地址即为指针,指针指向了一个具体的空间。指针变量:变量,保存地址的变量,需要占用内存空间。指针变量中保存的地址,是该指针指向的数据的首地址。给某个变量取地址时,获取的是这个变量首字节的地址。
2026-08-04 22:23:22
145
原创 C语言(函数与数组)
一维字符型数组作为函数参数传递时,只需要传递数组即可,不需要传递长度,因为字符型型数组。在具有包含关系的作用域中,出现了同名标识符,外层标识符在内层不可见(就近原则)局部变量:定义在局部作用域中的变量(函数内部定义的变量、函数形参)局部变量:在被定义的时候开辟空间,超出其作用域范围空间被回收。修饰的静态变量:从程序运行之前空间开辟,程序运行结束空间被回收。在自定义的函数中,行数无法计算,所以可以通过参数的方式传递。变量的生命周期:从变量的空间开辟到空间回收对应的生存期。
2026-08-03 19:15:24
176
原创 C语言(函数)
void:空类型,当函数执行完,不再需要有任何结果返回时,可以使用void类型的返回值。数组作为函数参数传递时,本质传递的是数组的首元素地址,所以形参本质是一个地址,是数组的。函数传参过程,其实是实参向形参拷贝的过程,实参有实参的空间,形参有形参的空间(值传。保护现场:当函数要被调用的时候,会将函数调用位置的下一条指令地址保存在栈空间;数组作为函数参数传递给被调函数后,函数内部的使用方法和外面使用一样,除了。恢复现场:当被调函数执行完时,通过出栈保护现场的地址,决定。递归要有递归的出口,否则会成为死循环。
2026-07-31 19:24:47
202
原创 C语言(二维整形与字符型数组)
在二维数组有初始化值得情况下,可以省略行数,不能省略列数。一维字符型数组:保存一个字符串。二维字符型数组:保存多个字符串。
2026-07-30 18:52:51
193
原创 C语言(数组排序以及字符型数组)
思想:将待排位置的数据和后面的数据依次进行比较,按照升序要求,将较小值存储在待排位置。排序算法的稳定性:在一个待排序列中出现了两个相同的数据,经过排序之后,这两个相同数据的。思想(升序):将要查找的值和序列的中间位置值比较,比中间位置值大,则在后半序列中继续折。思想:相邻两两数据进行比较,按照升序要求,将较大值交换到两两中的后者位置,经过一趟排。半查找,如果比中间值小,则从前半个序列中继续折半查找,如果恰好相等,则找到。:计算字符串的长度(字符型数组中有效字符的个数,不包含。没用初始化的部分,默认存储。
2026-07-29 18:28:50
179
原创 C语言(循环语句部分以及数组)
类型说明符 数组名[常量];类型说明符:基本数据类型、构造数据类型。说明数组中保存的数据的数据类型。数组名:遵循标识符的命名规则。[常量]:数组中可以保存的元素的个数。
2026-07-28 18:57:45
225
原创 C语言(循环结构)
表达式2:循环被执行的条件;表达式2的结果为真,则执行循环体;表达式2的结果为假时,跳出循环。循环执行的条件:逻辑结果的表达式,表达式结果为真,执行循环体;表达式结果为假,跳出循环。5)for循环和{}之间不要任何语句;循环的初始条件:while()前面。表达式3:让循环趋于结束的条件。循环中的循环体,至少要执行一次。让循环趋于结束的条件:循环体内。(表达式)后面必须要加分号。表达式1:循环的初始条件。}while(表达式);while(表达式)while(表达式)
2026-07-27 18:44:21
176
原创 C语言基础学习(数据类型)
最大值:1111 1111 1111 1111 1111 1111 1111 1111--》2^32-1=42亿+最大值:0111 1111 1111 1111 1111 1111 1111 1111--》2^31-1 21亿+最小值:1000 0000 0000 0000 0000 0000 0000 0000--》-2^31 -21亿。最小值:0000 0000 0000 0000 0000 0000 0000 0000--》0。最小值:0000 0000 0000 0000---》0。
2026-07-22 18:47:12
188
原创 linux入门基础
显示当前文件夹下的文件具体信息:文件大小、文件创建者和创建时间等。显示当前文件夹下的文件具体信息:文件大小、文件创建者和创建时间等。显示当前文件夹下的文件具体信息:文件大小、文件创建者和创建时间等。显示当前路径下所有文件的名称,包括隐藏文件(显示当前路径下所有文件的名称,包括隐藏文件(显示当前路径下所有文件的名称,包括隐藏文件(将文件中的数据以文本的方式显示到终端。查看该文件夹下的文件所占的硬盘空间。显示当前路径下所有文件的名称。显示当前路径下所有文件的名称。显示当前路径下所有文件的名称。
2026-07-21 18:35:33
156
原创 【无标题】
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2026-07-21 18:34:32
260
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅