首页 > 其他 > 详细

数据结构链表—— 循环链表

时间:2019-08-05 20:21:45      阅读:118      评论:0      收藏:0      [点我收藏+]

就和双链表的需求一样,但是在这里我们不设置前驱节点,而是把单链表的首位连接起来,形成循环链表

为了使非空链表的空链表处理起来一样,我们通常设置一个头结点,当然这并不是必须的,而是这样做非常方便。

技术分享图片

实际上循环链表和单链表的主要差别在于循环的判断条件上,原来是判断p->next是否为空,现在是p->next不等于头节点,则循环未结束。

进一步对链表进行处理,我们引进尾指针的定义。

技术分享图片

 

 我们只需要这样做:

p=rearA->next;     //保留链表A的头节点(第一步)

rearA->next=rearB->next->next;   //将本是指向B链表的第一个节点(非头节点)赋值给rearA->next(第二步)

rearB->next=p;    //将原A链表的头节点赋值给rearB->next(第三步)

free(p);

 这样一来,A链表和B链表合二为一,而且取消了A链表的头节点(A链表原头节点的内存被释放)。

技术分享图片

 

数据结构链表—— 循环链表

原文:https://www.cnblogs.com/jiameng991010/p/11304824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!