创建一个DoublyLinkedList对象来使用这些操作。
时间: 2024-03-13 13:44:28 浏览: 55
好的,我理解了你的问题。以下是创建一个DoublyLinkedList对象的示例代码:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = 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 delete(self, data):
current_node = self.head
while current_node:
if current_node.data == data:
if current_node == self.head and current_node == self.tail:
self.head = None
self.tail = None
elif current_node == self.head:
self.head = current_node.next
self.head.prev = None
elif current_node == self.tail:
self.tail = current_node.prev
self.tail.next = None
else:
current_node.prev.next = current_node.next
current_node.next.prev = current_node.prev
current_node = current_node.next
def print_list(self):
current_node = self.head
while current_node:
print(current_node.data)
current_node = current_node.next
```
这里我们创建了一个DoublyLinkedList类和一个Node类,用于创建双向链表中的节点。DoublyLinkedList类包含了几个方法,比如append(用于在链表末尾添加节点)、prepend(用于在链表开头添加节点)、delete(用于删除链表中的节点)和print_list(用于打印链表中的所有节点)。
现在我们可以创建一个DoublyLinkedList对象并使用它的方法来操作链表。例如:
```python
# 创建一个DoublyLinkedList对象
my_list = DoublyLinkedList()
# 在链表末尾添加节点
my_list.append(1)
my_list.append(2)
my_list.append(3)
# 在链表开头添加节点
my_list.prepend(0)
# 打印链表中的所有节点
my_list.print_list()
# 删除链表中的一个节点
my_list.delete(2)
# 再次打印链表中的所有节点
my_list.print_list()
```
这样,我们就可以创建、操作和打印一个DoublyLinkedList对象了。
阅读全文