循环链表:将单链表的终端结点的指针端由空指针改为指向头结点,这样就会把整个单链表形成一个环,这种头尾相连的单链表也称单循环链表。
单链表与循环链表的差异:
原来判断怕p->next是否为空,现在改为p->next不等于头结点,则循环继续。
我们也可以把两个循环链表合并成一个表,只要操作两个循环链表的尾指针就行了。
现在是A循环链表:头结点是rearA->next 尾指针是rearA
B循环链表:头结点rearB->next,头结点的下一个结点是rearB->next->next 尾指针是rearB
合并:
1、保存A表的头结点,不保留B表的头结点
2、尾指针rearA指向rearB->next->next
3、尾指针rearB指向rearA->next
程序:
p = rearA->next; //保存A表的头结点
rearA->next = rearB->next->next; //指向B表的第一个结点(不是头结点)
//赋值给rearA->next
q = rearB->next;