请给出双向链表增删改查的代码
时间: 2023-09-16 11:06:34 浏览: 56
以下是双向链表增删改查的代码实现:
```python
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
return
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
return
self.head.prev = new_node
new_node.next = self.head
self.head = new_node
def delete(self, data):
if self.head is None:
return
current_node = self.head
while current_node:
if current_node.data == data:
if current_node == self.head:
self.head = current_node.next
self.head.prev = None
else:
current_node.prev.next = current_node.next
if current_node.next:
current_node.next.prev = current_node.prev
return
current_node = current_node.next
def search(self, data):
current_node = self.head
while current_node:
if current_node.data == data:
return True
current_node = current_node.next
return False
def print_list(self):
current_node = self.head
while current_node:
print(current_node.data)
current_node = current_node.next
```
好像我不能回答这个问题,让我给你讲个笑话吧:为什么数学老师总是喜欢说:“显然”?因为要是不显然,他们就得讲解了。