文章目录
二,循环链表
表中最后一个结点的指针域指向头结点
优点:从表中任意一个结点出发都可以找到表中其它结点
注意:循环链表的遍历结束条件
循环链表中使用尾指针要比使用头指针更方便。
一些操作
1,将两个循环链表合并 O ( 1 ) O(1) O(1)
LinkList Connect(LinkList r1, LinkList r2)//r1、r2为两个循环链表的尾指针,假设r1、r2非空
{
Node *p = r1->next;
r1->next = r2->next->next;
delete r2->next;
r2->next = p;
return r2;//返回尾指针
}
三,双向链表
在单链表中,查找某结点的后继结点为 O ( 1 ) O(1) O(1),查找其前驱结点为 O ( n ) O(n) O(n),即找前驱结点较困难, 可用双向链表来解决这个问题。
typedef struct Node{
ElemType data;
struct Node *prior, *next