python实现双向链表-代码示例

xl1407

温馨提示:这篇文章已超过241天没有更新,请注意相关的内容是否还可用!

python实现双向链表-代码示例

双向链表是一种数据结构,它由节点组成,每个节点都包含一个数据元素和两个指针,分别指向前一个节点和后一个节点。相比单向链表,双向链表可以从任意一个节点开始向前或向后遍历。

在Python中,我们可以使用类来实现双向链表。我们需要定义一个节点类,该类包含数据元素和两个指针,分别指向前一个节点和后一个节点。然后,我们可以定义一个双向链表类,该类包含头节点和尾节点,并提供一些操作方法。

下面是一个示例代码:

class Node:

def __init__(self, data):

self.data = data

self.prev = None

self.next = None

class DoublyLinkedList:

def __init__(self):

self.head = None

self.tail = None

def append(self, data):

new_node = Node(data)

if self.head is None:

self.head = new_node

self.tail = new_node

else:

new_node.prev = self.tail

self.tail.next = new_node

self.tail = new_node

def prepend(self, data):

new_node = Node(data)

if self.head is None:

self.head = new_node

self.tail = new_node

else:

new_node.next = self.head

self.head.prev = new_node

self.head = new_node

def print_list(self):

current = self.head

while current:

print(current.data)

current = current.next

# 创建一个双向链表对象

dllist = DoublyLinkedList()

# 在链表尾部添加元素

dllist.append(1)

dllist.append(2)

dllist.append(3)

# 在链表头部添加元素

dllist.prepend(0)

# 打印链表

dllist.print_list()

在上面的示例代码中,我们首先定义了一个节点类Node,该类包含数据元素data和两个指针prev和next。然后,我们定义了一个双向链表类DoublyLinkedList,该类包含头节点head和尾节点tail,并提供了append、prepend和print_list方法。

在main函数中,我们创建了一个双向链表对象dllist,并依次在链表尾部添加了1、2、3三个元素,然后在链表头部添加了0。我们调用print_list方法打印链表的元素。

通过这个示例代码,我们可以看到如何使用Python实现双向链表,并进行基本的操作,如在链表头部或尾部添加元素,以及打印链表的元素。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码