前言
双向链表:链表之双向链表
双向循环链表是双向链表的变化形式,双向链表的尾部节点的后继节点None,双向循环节点的尾部节点的后继节点指向链表的头节点。
双向循环链表的结构如图1所示:
图 一 双 向 循 环 链 表 结 构 图一 双向循环链表结构 图一双向循环链表结构
编程实现
如果对双向链表的结构有所了解的话,创建双向循环列表就会相当容易一些。
class Node:
def __init__(self, data):
self.data = data
self.prev = None # 前驱指针
self.next = None # 后继指针
class CycleDoubleLinkedList(object):
def __init__(self, node=None):
self.tail = node
if node is not None:
self.tail.next = node
self.tail.prev = node
def is_empty(self):
return True if not self.tail else self.tail.next