码迷,mamicode.com
首页 > 其他好文 > 详细

循环链表之简介

时间:2015-04-15 21:35:42      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:指针   c   线性表   数据结构   循环链表   

循环链表是另一种形式的链表,他的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。由此,从表中任一结点出发均可找到表中其他节点。

循环链表的结构图如下:

技术分享

循环链表的操作和之前的写过的单链表的操作是基本一致的,所以我就不再给出详细的代码,我来说说它们之间的不同:循环链表与单链表的差别在于算法之中的循环条件不是p或者p->next 是否为空,而变成了它们是否等于头指针。

循环链表的特点是无需增加存储量,仅对链接的方式稍作改变,即可使得表处理更加方便灵活。

我们同样找一个例子来说明这个特点:

例如我们在链表上实现将两个线性表(a1,a2,…,an) 和 (b1,b2,…,bn)连接成一个线性表(a1,a2,…,an,b1,b2,…,bn)的预算。

我们如果在单链表上做这种链接操作,我们都需要遍历链表a,首先找到节点an,将b1链接到an的后面,它的复杂度是O(n)。但是如果我们在尾指针表示的单循环表上实现,只需要修改指针,不需要遍历,它的复杂度是O(1)。

这样用尾指针表示的循环链表的示意图如下技术分享

我们在实验中通常是用尾指针表示的循环链表,这是因为我们只要找到了尾指针,它的下一个便是头指针,这就相当于我们找到了头指针,但如果我们用头指针表示的循环链表,那么我们如果需要尾指针,我们必须要遍历整个链表。


循环链表之简介

标签:指针   c   线性表   数据结构   循环链表   

原文地址:http://blog.csdn.net/fk5431/article/details/45063569

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!