线性表、栈、队列、串、树、图
1、线性表
线性表是由n个数据元素组成的有限序列。n定义为线性表的长度,n=0时,称为空表。
线性表的存储结构分为顺序表和链表。
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。
链表也是一种线性表,但是它不会按线性的顺序存储数据,而是在每一个节点里存着到下一个节点的指针。由于不必按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比顺序表快得多,但是在查找一个节点或者访问特定编号的节点时需要O(n)的复杂度,而顺序表相应的时间复杂度分别是O(logn)和O(1)。
链表又分为单链表、循环链表、双向链表。
在顺序结构中,每个元素只需要存元素数据就可以了,但是在链式结构中,除了要存储元素数据外,还要存储它的后继元素的存储地址。存储元素数据的域称为数据域,存储后继元素位置的域称为指针域,数据域和指针域组成了节点。链表中第一个节点的存储位置叫做头指针。
在单链表的第一个节点前附设一个节点,称之为头节点。头结点的数据域可以不存储任何信息,也可以存储如线性表的长度等附加信息。头结点的指针域存储指向第一个节点的指针。
链表向外暴露的只有第一个数据节点,我们对链表的所有操作,都是直接或间接地对这个节点进行的。
在有些算法题目中,习惯把第一个数据节点称为头节点,把头结点之前的节点称为哑节点dummy。
2、栈、队列
栈是一个只能在一端插入和删除的特殊的线性表。
队列
3、串、树、图
4、堆
堆是优先级队列,堆是完全二叉树。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】