链表

链表

特性

通过每个结点记录之后或之前结点的值,那么就可以知道所有结点的排列顺序。

插入

如果要在链表中插入一个元素。
那么就可以将前面的元素的后缀(指的是之后结点的值)改成插入的元素,
插入元素的后缀顶上前面元素的后缀。

void insret(int x,int y){
	nxet[y]=next[x];
	next[x]=y;
}

删除

如果要在链表中删除一个元素。
那么可以在将删除元素的后缀继承为其前面元素的后缀。

void remove(int x){
	next[x]=next[next[x]];
}

类别

  • 单链表:每个结点记录自己的后继。
  • 双链表:每个结点记录自己的前驱和后继。
  • 循环单链表:将末尾结点的后继为第一个结点。
  • 循环双链表:第一个的前驱为最后的结点,最后一个的后继为第一个结点
  • 块状链表:特殊链表,将若干元素压缩成一块,将这些块串联起来。
  • 跳表:每个结点拥有自己的右指针和下指针,通过分层的方式加快查询,而每个元素的层数由概率决定。相当于平衡树。
posted @ 2024-02-21 23:43  拍手称快  阅读(3)  评论(0编辑  收藏  举报