在Python中创建一个Doubly Linked List(双向链表)可以通过自定义一个双向节点类来实现。下面是一个示例的代码:
class Node:
def __init__(self, data):
self.data = data
self.prev = None
self.next = None
class DoublyLinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current_node = self.head
while current_node.next:
current_node = current_node.next
current_node.next = new_node
new_node.prev = current_node
def prepend(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
new_node.next = self.head
self.head.prev = new_node
self.head = new_node
def insert_after(self, prev_node, data):
if prev_node is None:
return
new_node = Node(data)
new_node.next = prev_node.next
prev_node.next = new_node
new_node.prev = prev_node
if new_node.next:
new_node.next.prev = new_node
def delete(self, data):
current_node = self.head
while current_node:
if current_node.data == data:
if current_node.prev:
current_node.prev.next = current_node.next
if current_node.next:
current_node.next.prev = current_node.prev
else:
self.head = current_node.next
if current_node.next:
current_node.next.prev = None
current_node = current_node.next
def print_list(self):
current_node = self.head
while current_node:
print(current_node.data, end=" ")
current_node = current_node.next
print()
# 示例用法
doubly_list = DoublyLinkedList()
doubly_list.append(1)
doubly_list.append(2)
doubly_list.append(3)
doubly_list.prepend(0)
doubly_list.insert_after(doubly_list.head.next, 1.5)
doubly_list.delete(2)
doubly_list.print_list()
这段代码创建了一个双向链表的类DoublyLinkedList
,并包含了常见的双向链表操作,如追加元素(append
)、在头部插入元素(prepend
)、在指定节点后插入元素(insert_after
)、删除指定元素(delete
)等。另外,还提供了一个打印链表内容的方法(print_list
)。
注意:这个示例只是给出了在Python中创建双向链表的基本代码实现,未涉及到与云计算、腾讯云等相关的内容。
领取专属 10元无门槛券
手把手带您无忧上云