链表还有哪些其他独特表现形式吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2482个文字,预计阅读时间需要10分钟。
在上篇文章中,我们已介绍过链表除了简单的单向链表外,还有其他几种形式。链表的一大特点是灵活性和便捷性。简单来说,我们想一探究竟,如果让最后链表这种结构更加……
在上篇文章中,我们已经说过了链表除了简单的那一种单向链表外,还有其它的几种形式。当然,这也是链表这种结构的一大特点,非常地灵活和方便。我们简单的想一想,如果让最后一个节点的next指回第一个节点,那么这就样就形成了一个环,这就是一个循环链表了。如果我们在每个节点上增加一个指向上一个节点的 prev 属性,那么这个链表就变成了一个双向链表了。如果我们在双向链表的基础上也让最后一个节点的 next 指向第一个节点,同时让第一个节点的 prev 指向最后一个节点,这不就是一个双向循环链表了嘛。下面我们就来具体的看一看。
循环链表
就像上文所说的,我们让最后一个节点指向第一个节点,这样形成的链表就是一个循环链表,如下图所示:
关于循环的链表的操作我们不做详细的说明,其实大部分代码和单向链表是一样的,只是需要注意两个地方:
1.初始化、插入操作的时候,注意最后一个节点的指向,最后一个节点的 next 要指向第一个节点
2.判断链表遍历是否完成的条件为 item->next == head ,也就是说,判断这个节点的下一个节点如果是头节点的话,链表就遍历完成了。
双向链表
双向链表则是在 LinkedList 这个类里面增加一个属性来指向上一个节点。
本文共计2482个文字,预计阅读时间需要10分钟。
在上篇文章中,我们已介绍过链表除了简单的单向链表外,还有其他几种形式。链表的一大特点是灵活性和便捷性。简单来说,我们想一探究竟,如果让最后链表这种结构更加……
在上篇文章中,我们已经说过了链表除了简单的那一种单向链表外,还有其它的几种形式。当然,这也是链表这种结构的一大特点,非常地灵活和方便。我们简单的想一想,如果让最后一个节点的next指回第一个节点,那么这就样就形成了一个环,这就是一个循环链表了。如果我们在每个节点上增加一个指向上一个节点的 prev 属性,那么这个链表就变成了一个双向链表了。如果我们在双向链表的基础上也让最后一个节点的 next 指向第一个节点,同时让第一个节点的 prev 指向最后一个节点,这不就是一个双向循环链表了嘛。下面我们就来具体的看一看。
循环链表
就像上文所说的,我们让最后一个节点指向第一个节点,这样形成的链表就是一个循环链表,如下图所示:
关于循环的链表的操作我们不做详细的说明,其实大部分代码和单向链表是一样的,只是需要注意两个地方:
1.初始化、插入操作的时候,注意最后一个节点的指向,最后一个节点的 next 要指向第一个节点
2.判断链表遍历是否完成的条件为 item->next == head ,也就是说,判断这个节点的下一个节点如果是头节点的话,链表就遍历完成了。
双向链表
双向链表则是在 LinkedList 这个类里面增加一个属性来指向上一个节点。

