对于单链表而言,最后一个结点指针域是空指针,如果将该链表头指针置入该指针域,则使得链表头尾结点相连,这就构成了单循环链表。和单链表的操作基本相同,只是把最后一个结点的指针域指向头指针而已,其他没有变化。上篇博文我们说单链表有个缺点,就是无法随机查找,每次查找一个结点都要从头开始,那么单循环链表就很好地解决掉了这个问题。单循环链表可以从表中任意结点开始遍历整个链表。
循环链表示意图:
两个单循环链表的链接操作:
p = R1->next; //p即为头结点
R1->next = R2->next->next; //两联表相连
free(R2->next); //释放第二个表头的头结点
R2->next = p; //最后一个结点指向头结点