链表
链表
特性
通过每个结点记录之后或之前结点的值,那么就可以知道所有结点的排列顺序。
插入
如果要在链表中插入一个元素。
那么就可以将前面的元素的后缀(指的是之后结点的值)改成插入的元素,
插入元素的后缀顶上前面元素的后缀。
void insret(int x,int y){
nxet[y]=next[x];
next[x]=y;
}
删除
如果要在链表中删除一个元素。
那么可以在将删除元素的后缀继承为其前面元素的后缀。
void remove(int x){
next[x]=next[next[x]];
}
类别
- 单链表:每个结点记录自己的后继。
- 双链表:每个结点记录自己的前驱和后继。
- 循环单链表:将末尾结点的后继为第一个结点。
- 循环双链表:第一个的前驱为最后的结点,最后一个的后继为第一个结点
- 块状链表:特殊链表,将若干元素压缩成一块,将这些块串联起来。
- 跳表:每个结点拥有自己的右指针和下指针,通过分层的方式加快查询,而每个元素的层数由概率决定。相当于平衡树。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?