数据结构:数据结构基础、顺序表、链表
发布时间:2026/9/29 6:42:20 锦皓数字建站

Algorithms Data Structures Programs——尼克劳斯·维尔特Niklaus Wirth目录1.数据结构概念二、顺序表三、链式表linklist【重点应用非常多】1.数据结构概念1.概念程序 数据结构 算法数据结构:程序操作数据对象的结构是数据元素的集合这些元素之间存在某种关系。算法:是程席操作数据对象的方法是解决特定问题的一系列步骤意义程序的设计和实现都围绕着这两个核心组件展开。选择合适的数据结构可以优化算法的执行提高程序的整体效率。2.程序的效率的衡量指标时间复杂度: 数据量增长与程序运行时间增长呈现的比例函数关系称为时间复杂度函数简称为时间复杂度【按从优到劣排序】O(c)O(logn)O(n)O(nlogn)O(n^2)O(n^3)...0(2^n)空间复杂度:数据量增长与程序空间增长呈现的比例函数关系称为空间复杂度3.数据结构1.逻辑结构线性结构表状结构一对一关系树形结构二叉树一对多关系图形结构多对多关系2.存储结构这也是数组与链表的区别顺序存储优点——访问元素方便缺点——插入数据不便删除数据效率也低无法利用小空间即内存碎片链式存储优点——①插入、删除效率高②可以利用小空间即内存碎片缺点——访问元素不方便增加额外空间的开销索引存储——像书的目录一样散列存储——哈希表3.具体常用数据结构类型分类顺序表Contiguous List链式表【重点应用非常多】顺序栈链式栈顺序队列就是排队链式队列二叉树完全二叉树、满二叉树哈希表常见排序和查找算法二、顺序表概念本质上是数组(动态数组)只不过存于堆区通过申请堆区空间存储数据通过首地址完成对所有空间的访问申请释放调用makefile三、链式表linklist【重点应用非常多】1简介概念链表是一种牺牲随机存取性能以换取动态性和插入/删除效率的数据结构适用于频繁增删、数据规模不确定的场景但需注意其空间开销和顺序访问的限制。主要缺点失去随机存取能力无法像数组一样通过索引直接访问元素。空间开销较大每个结点需额外存储指针占用更多内存。访问效率较低查找特定结点需遍历链表。2.3种分类单向链表分有头链表和无头链表注意无头链表插入数据较麻烦会使用二级指针所以学习有头链表双向链表双向循环链表【应用最多内核里使用。如freertos操作系统】3.单向链表链表最后一个节点的指针数据pnext永远为空∵链表是前一个节点指向下一个节点最后一个节点的下一个节点没有所以它存的下一个节点的地址为空函数①——空结点创建分析申请调用函数②——节点后插函数作用:在某个节点*pHead的后边插入一个节点并存储数据TmpData分析四步①申请新节点空间②存放数据到新节点的Data③将pHead节点的pNext值赋值给新节点pNext④将新节点的pNext赋给pHead的节点代码函数③——链表元素的访问函数两种方法分析以下两种方法都能实现p为当前节点首地址左边的思路可以遍历所有元素但是无法得到最后一个元素除非再遍历一遍比较麻烦 右边的思路指针一指向最后一个元素就停下来了想要对最后一个元素读取需在while外边再操作一行代码调用结果函数④——链表元素的删除分析代码调用结果函数⑤——链表元素的替换分析遍历所有节点当节点数据为需要修改的数据时将其改为新数据代码调用结果函数⑥——链表的释放分析定义两个指针指向链表头代码可通过valgrind检查
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。