![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
chenxianda-3
这个作者很懒,什么都没留下…
展开
-
链表的另一种构造方式
三种链表的分析(1)、传统链表(2)、Linux内核链表:使用的就是结构体的偏移量技术来定位的;(3)、通用链表:因为结构体的第一个成员变量的地址和结构体的地址是同一个地址,所以放一个结构体,内部只有一个成员变量指针,用来进行链表的操作,将具体的算法和数据类型相分离;实现了一种"我不包含万物,万物包含我的"哲学思想;模型图如下:通用链表的模型图:3、通用链表的...转载 2019-03-02 23:47:55 · 93 阅读 · 0 评论 -
算法的时间复杂度(大O表示法)
定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数T(n)称为这一算法的“时间复杂性”。当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。我们常用大O表示法表示时间复杂性,注意它是某一个算法的时间复杂性。大O表示只是说有上界,由定义如果f(n)=O(n),那显然成立f(n)=O(n^2),它给你一个上界,但并不是上确界,但人们...转载 2019-03-03 23:45:24 · 3088 阅读 · 0 评论 -
typedef DListRet (*DListDataPrintFunc)(void* data);什么意思
DListDataPrintFunc是一个函数指针类型的别名,该函数返回值是DListRet,参数是void *data比如typedef void (*func)();void f(){putchar('X');}int main(){func g = f; //相当于void (*g)() = f;g();}...转载 2019-03-03 23:46:11 · 163 阅读 · 0 评论 -
C语言 结构体指针强制转换
最近写c程序遇到的结构体指针强转的坑,记录一下.是一个简单的菜单程序,程序用到链表,表中存储了9个不同命令.每次将用户输入的命令与表中存储的命令名作对比(遍历查询),然后执行相应功能.总体结构:linktable.h:定义通用模块化链表数据结构,以及相关操作linktable.c:实现头文件中定义的链表操作main.c:主函数123通用链表节点:(抽象定义)typede...转载 2019-03-03 23:46:49 · 1591 阅读 · 0 评论 -
排序算法的稳定性判断原则及其意义
排序算法稳定性所谓稳定性是指待排序的序列中有两元素相等,排序之后它们的先后顺序不变.假如为A1,A2.它们的索引分别为1,2.则排序之后A1,A2的索引仍然是1和2.稳定性的定义假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳...转载 2019-03-03 23:47:17 · 375 阅读 · 0 评论 -
详解KMP算法
https://www.cnblogs.com/yjiyjige/p/3263858.html原创 2019-05-25 00:20:53 · 80 阅读 · 0 评论