初阶数据结构
文章平均质量分 94
初阶数据结构
時語風華
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构(初阶)笔记归纳11:排序
衡量相同值在排序后相对位置是否保持一致的特性时间复杂度空间复杂度稳定性直接插入排序O(N^2)O(1)稳定希尔排序O(N^1.3)O(1)不稳定选择排序O(N^2)O(1)不稳定堆排序O(N*logN)O(1)不稳定冒泡排序O(N^2)O(1)稳定快速排序O(N*logN)O(logN)不稳定归并排序O(N*logN)0(N)稳定。原创 2026-02-06 22:14:10 · 967 阅读 · 0 评论 -
数据结构(初阶)笔记归纳10:二叉树
给你两棵二叉树root和subRoot,检验root中是否包含和subRoot具有相同结构和节点值的子树,如果存在,返回true,否则,返回false。3.任何二叉树,度为0的叶节点个数为n(0),度为2的分支节点个数为n(2),则有n(0) = n(2) + 1。输入:root = [2,4,5,1,2],subRoot = [4,1,2]输入:p = [1,2,3],q = [1,2,3]输入:root = [1,2,2,3,4,4,3]输入:[1,1,1,1,1,null,1]原创 2026-02-03 15:20:08 · 817 阅读 · 0 评论 -
数据结构(初阶)笔记归纳9:堆
每棵树都可以看作由一个根和若干个子树组成int val;原创 2026-01-28 21:26:25 · 1005 阅读 · 0 评论 -
数据结构(初阶)笔记归纳8:栈和队列
/顺序表指针int top;//栈顶元素下标//空间大小}ST;}QNode;int size;}Queue;将头指针,尾指针,以及节点个数封装成一个结构体只需传送这个结构体的地址,就能完成对指针变量的修改减少了传送的参数个数,避免了传送二级指针同样是单链表,为什么实现队列时可以创建头尾结构?因为这种头尾结构可以轻松实现尾插,但实现尾删非常麻烦因为不方便寻找倒数第二个节点。原创 2026-01-26 15:22:36 · 1413 阅读 · 0 评论 -
数据结构(初阶)笔记归纳7:链表OJ
思路1:快慢指针法思路解析:创建一个慢指针slow,快指针fast快指针先走k步,然后快慢指针同时走快指针指向空后结束,此时slow指向倒数第k个节点代码部分: 思路1:逆置法思路解析:查找中间节点,逆置后半段节点,将头节点与中间节点往后的数据依次进行比较相同继续往后走,不同返回false,直到有一个指向空后结束循环,返回true代码部分: 思路解析:判断相交:如果A链表和B链表的尾节点地址相同则相交寻找交点:代码部分: 思路1:快慢指针法思路解析:创建一个快指针fast,慢指针sl原创 2026-01-22 13:36:14 · 1245 阅读 · 0 评论 -
数据结构(初阶)笔记归纳6:双向链表的实现
本文详细介绍了带头双向循环链表的实现方法。首先阐述了双向链表的概念和节点结构,包含数据域和前后指针域。接着系统讲解了链表操作的实现过程,包括初始化、插入删除(头插尾插、头删尾删)、查找、销毁等核心功能,每个操作都配有详细的代码实现和解析说明。最后通过测试文件验证了各功能的正确性,并提供了完整的代码示例。文章结构清晰,从理论到实践完整呈现了双向链表的实现过程,可作为学习数据结构的实用参考资料。原创 2026-01-20 19:17:28 · 965 阅读 · 0 评论 -
数据结构(初阶)笔记归纳5:单链表的应用
目录单链表的应用一、单链表经典算法试题1:移除链表元素试题2:反转链表试题3:链表的中间节点试题4:合并两个有序链表试题5:环形链表的约瑟夫问题试题6:分割链表二、链表的分类三、总结思路1:三指针法思路解析:创建一个指针pcur指向头节点,遍历原链表当指向指定数据的节点时:先创建一个指针prev指向pcur前一个节点,该节点的指针域存放pcur下一个节点的地址再创建一个指针next指向pcur后一个节点,释放pcur节点,让pcur指向next指向的节点当指向非指定数据节点时:next先往后走,pcur,p原创 2026-01-19 22:52:52 · 1156 阅读 · 0 评论 -
数据结构(初阶)笔记归纳4:单链表的实现
int data;//节点数据//指向下一个节点的指针变量S:Single(单)List:列表Node:节点}SLTNode;原创 2026-01-17 12:59:31 · 1495 阅读 · 0 评论 -
数据结构(初阶)笔记归纳3:顺序表的应用
数组元素为联系人结构变量,而顺序表的头文件中是没有定义这个变量的,需要引入通讯录的头文件才能将这个元素类型重命名int size;//有效数据个数//空间大小}SL;宏定义常量,便于参数修改//姓名//性别int age;//年龄//电话//地址}peoInfo;原创 2026-01-14 20:36:50 · 1228 阅读 · 0 评论 -
数据结构(初阶)笔记归纳2:顺序表的实现
使用类型别名便于后续维护修改用宏定义常量,便于参数修改int size;//有效数据个数结构体重命名,便于后续使用int size;//有效数据个数//空间大小}SL;想要改变地址对应的数据就要传送地址,传送地址后先要判断是否为NULL插入数据前要进行空间检测不要忘记判断pos值是否有效要掌握每个功能循环的起始、循环、终止条件不要忘记对有效数据个数进行修改。原创 2026-01-13 14:26:48 · 1342 阅读 · 0 评论 -
数据结构(初阶)笔记归纳1:复杂度讲解
目录复杂度讲解一、数据结构的概念(Data Structure)二、算法的概念(Algorithm)三、算法效率3.1.如何衡量一个算法的好坏3.2.算法的复杂度四、时间复杂度4.1.时间复杂度的概念4.2.大O的渐进表示法4.3.常见的时间复杂度计算例1:Func1函数中++count语句总共执行了多少次?例2:计算Func2函数的时间复杂度?例3:计算Func3函数的时间复杂度?例4:计算Func4函数的时间复杂度? 例5:计算strchr函数的时间复杂度?例6:计算Func5函数的时间复杂度?例7:计原创 2026-01-06 20:09:05 · 972 阅读 · 0 评论
分享