C
linux C
aqiangdeba
这个作者很懒,什么都没留下…
展开
-
C-数据结构-retrieval搜索树
logtrie.c补充说明要理解 struct node_st *ch[26]; 的含义,我们可以逐步解析这个定义,并结合代码示例说明它是如何工作的。这里我们一步一步地解释。逐步理解 struct node_st *ch[26];指针数组:ch 是一个数组,它包含 26 个元素。数组的每个元素都是一个指向 struct node_st 类型的指针。struct node_st 是一个结构体类型,表示前缀树的节点。struct node_st 是一个包含指针数组 ch 和描述字符串 desc 的原创 2024-05-28 16:44:18 · 294 阅读 · 0 评论 -
C-数据结构-树转存广义表-广义表转成树-实例
【代码】C-数据结构-树转存广义表-广义表转成树-实例。原创 2024-05-28 11:25:49 · 406 阅读 · 0 评论 -
C-数据结构-平衡二叉树
平衡二叉树实现原创 2024-05-27 21:34:03 · 733 阅读 · 0 评论 -
C-数据结构-树状存储的基本实现
main.c320。原创 2024-05-27 19:07:26 · 1040 阅读 · 0 评论 -
C-数据结构-树状存储基本概念
’’树状存储基本概念深度(层数)度(子树个数)叶子孩子兄弟堂兄弟二叉树:满二叉树:完全二叉树:存储:顺序,链式树的遍历:按层遍历,先序,中序,后序‘’’树是计算机科学中的一种重要数据结构。以下是关于树的基本概念和类型的详细介绍。原创 2024-05-27 15:36:06 · 881 阅读 · 0 评论 -
C-数据结构-动态库
下面进行举例 针对 本专栏文章。原创 2024-05-27 11:43:49 · 528 阅读 · 0 评论 -
C-数据结构-静态库
通过这些步骤,你可以创建一个静态库并将其发布到系统的标准位置,从而在其他项目中使用它。确保头文件和库文件都在适当的位置,这样编译器和链接器就能找到它们。llist.h1//回调函数 typedef int llist_cmp(const void * , const void *);int size;} LLSIT;//数据类型不统一使用void 百搭 int llist_delete(LLIST * , const void * key , llist_cmp *);原创 2024-05-27 11:15:06 · 379 阅读 · 0 评论 -
C-数据结构-栈和队列的应用-求中算法
【代码】C-数据结构-栈和队列的应用-求中算法。原创 2024-05-26 20:12:05 · 241 阅读 · 0 评论 -
C-数据结构-栈和队列的应用-计算器实例
【代码】栈和队列的应用-计算器实例。原创 2024-05-25 20:10:12 · 267 阅读 · 0 评论 -
C-数据结构-链式存储队列
【代码】C-数据结构-链式存储队列。原创 2024-05-25 16:41:55 · 148 阅读 · 0 评论 -
C-数据结构-顺序存储队列
人为规定头指针指向位置不能指向有效数据。保留一个空位置,判断空和满。原创 2024-05-25 15:16:24 · 193 阅读 · 0 评论 -
C-数据结构-链式存储栈(二次封装)
栈 出栈入栈操作类似于 从头节点开始的插入和删除。二次封装 借用已经实现双向链表结构来实现。原创 2024-05-25 13:14:57 · 247 阅读 · 0 评论 -
C-数据结构-顺序存储栈
【代码】C-数据结构-顺序存储栈。原创 2024-05-25 11:58:13 · 314 阅读 · 0 评论 -
C-数据结构-双向链表(linux内核 )
的作用是定义并初始化一个链表头节点head,表示一个空的双向链表。这个链表头节点的prev和next指针都指向自身。通过这种方式,可以方便地使用头节点来管理和操作双向链表中的所有节点。原创 2024-05-24 10:24:09 · 701 阅读 · 0 评论 -
C-数据结构-双向环链-进一步封装
精简.h中的内容 只保留用户调用的函数。数据结构进行隐藏 放到.c里面。通用性比较强的双向环链。原创 2024-05-24 09:03:03 · 226 阅读 · 0 评论 -
C-数据结构-双向环链-变长结构体的使用-面向对象的思想
是一个函数指针,指向一个接受LLIST *和int参数并返回int的函数。通过这种声明方式,可以灵活地在程序中使用函数指针,以实现动态函数调用和回调机制。原创 2024-05-23 20:32:15 · 332 阅读 · 0 评论 -
C-数据结构-双向循环链表
常用的双向循环链表,不易出错/*通用性比较强的双向环链为了函数的通用性,我们在.h .c 需要用户去定夺的关键字,内容全部做成通用的接口利用typedef抽象出了一些接口比较统一的实现方法*/llist.hllist.cmain.cMakefile补充说明在C语言中, 关键字用于给现有的数据类型定义一个新的名字。你提供的 是一个非常有用的技巧,特别是在定义函数指针类型时。我们来详细解释一下这个定义。原始定义:这行代码声明了一个函数类型 ,它接受一个 类型的参数,并且没有返回值()。原创 2024-05-23 19:35:27 · 1033 阅读 · 0 评论 -
C-数据结构-单向循环链表
单向无头结点一定要注意传参 一般是二维指针问题 非常容易出错。原创 2024-05-23 14:51:50 · 340 阅读 · 0 评论 -
C-数据结构-单向链表(示例)
【代码】C-数据结构-单向链表(示例)原创 2024-05-22 19:56:55 · 270 阅读 · 0 评论 -
C-数据结构-单向链表(无头结点)
无头结点的单向不循环链表带头结点最简单的形式:一个头节点 数据域不管,指针域为空。/*实现了单向无头链表的几个函数 插入,删除,展示,寻找,释放对于直接需要对链表本身修改的 函数传参问题,二级指针 或者是 函数返回值我们一般只对 nohead.c进行实现,main.c则是由整体的框架决定,所以对于返回的什么值,最好不要在nohead.c中直接输出值*/原创 2024-05-22 17:16:39 · 322 阅读 · 0 评论 -
C-数据结构-单向链表(带头节点)
单向链表带头节点(head)(数据域,指针域)随机访问性比较差 但是插入删除操作较为简单。原创 2024-05-20 21:16:31 · 197 阅读 · 0 评论 -
C数据结构-线性表
线性:线性表,栈,队列,顺序存储:数组链式存储:链表(指针)原创 2024-05-18 18:39:20 · 126 阅读 · 0 评论 -
C-如何使用重定义typedef
【代码】C-如何使用重定义typedefine。原创 2024-05-17 11:03:55 · 247 阅读 · 0 评论 -
C动态内存管理
malloccallocreallocfree原则:谁申请,谁释放,防止内存泄漏在C语言中,当你传递一个指针给一个函数时,你实际上是传递了指针的副本,而不是指针本身。这意味着,虽然你在函数内部可以通过这个指针修改指向的内存,但对于指针本身的修改(例如将它指向一个新的内存地址),这种修改不会影响到函数外部指针的值。原创 2024-05-17 10:29:47 · 382 阅读 · 0 评论 -
C-构造类型-共用体-枚举
4.定义变量(变量 数组 指针) ,初始化及成员引用。6.函数传参(值 地址)成员引用: 变量名.成员名。原创 2024-05-16 19:51:32 · 253 阅读 · 0 评论 -
构造类型-结构体
4.定义变量(变量,数组,指针),初始化及成员引用。成员引用 : 变量名. 成员名。5.结构体占用内存空间大小。函数传参(值 , 地址)(*指针). 成员名。原创 2024-05-16 16:25:21 · 484 阅读 · 0 评论 -
C-函数的由浅入深
数据类型 函数名 (【数据类型 形参名,数据类型 形参名, …函数指针:指向函数的指针 指向和函数指针相同类型的函数。汉诺塔 / 二叉树 /阶乘 /斐波那契数列。类型 (*数组名【下标】) (形参)数组中的N个元素 都是指向函数的指针。一个进程的返回状态是给他的父进程看的。递归 能够抽象出来一个类似公式的递推。指针函数:一个函数的返回值是指针。递归 一个函数嵌套的调用自己。类型 (*指针名)(形参)返回值 * 函数名(形参)函数与指针关系的详细剖析。地址传递 (间接引用)原创 2024-05-15 20:11:07 · 330 阅读 · 0 评论 -
C指针由浅入深
数组指针:存储类型 数据类型 (*指针名【下标】) = 值。& * 关系运算 ++ –6.定义与初始化的书写规则。10.指针数组和数组指针。3.直接访问和间接访问。9.const与指针。原创 2024-05-14 16:25:17 · 329 阅读 · 0 评论 -
字符数组(字符串):单词计数
初始化 : 单个字符初始化 用字符串常量初始化。输入输出 : %s 不能够获得带有分隔符的串。string 库 man strcpy。存储特点 结束标记(\0)原创 2024-05-13 18:53:50 · 252 阅读 · 0 评论 -
一维数组:冒泡排序/选择排序/进制转换
当 i = 2 时,我们从 j = 2 * 2 = 4 开始,每次增加 i = 2,标记 4、6、8、10、12、14、…当 i = 3 时,我们从 j = 3 * 2 = 6 开始,每次增加 i = 3,标记 6、9、12、15、…当 i = 5 时,我们从 j = 5 * 2 = 10 开始,每次增加 i = 5,标记 10、15、20、…这样,我们就将所有非质数标记了一遍,剩下的就是质数。选择排序 同样也是一次一个数,但有些不一样, 每次定位都定位在最小的数组下标后交换。冒泡排序,一次排好一个数。原创 2024-05-13 08:42:59 · 153 阅读 · 0 评论 -
二维数组:行列互换/求最大值及其所在位置/求各行各列的和/矩阵乘积/深入理解二维数组
1.定义 只有行号可以省略,初始化 全部初始化/部分初始化/不初始化。3.存储形式 :顺序存储 按行存储。4.深入理解二维数组。原创 2024-05-13 16:25:10 · 411 阅读 · 0 评论