双向链表的基本操作python
时间: 2023-11-17 19:59:34 浏览: 94
双向链表是一种链表,它的每个节点都有两个指针,一个指向前一个节点,一个指向后一个节点。下面是双向链表的基本操作:
1.创建双向链表:创建一个空链表,即创建一个头节点,头节点的前驱和后继都指向None。
2.添加节点:在双向链表的任意位置添加一个节点,需要先找到要添加的位置,然后将新节点的前驱和后继指针指向相应的节点,相应节点的前驱和后继指针也要指向新节点。
3.删除节点:在双向链表中删除一个节点,需要先找到要删除的节点,然后将相应节点的前驱和后继指针指向要删除节点的前驱和后继节点,要删除节点的前驱和后继节点的指针也要指向相应节点。
4.遍历双向链表:从头节点开始,依次访问每个节点,直到访问到尾节点。
下面是一个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
def add_node(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next is not None:
current = current.next
current.next = new_node
new_node.prev = current
def delete_node(self, data):
current = self.head
while current is not None:
if current.data == data:
if current.prev is not None:
current.prev.next = current.next
else:
self.head = current.next
if current.next is not None:
current.next.prev = current.prev
break
current = current.next
def traverse(self):
current = self.head
while current is not None:
print(current.data)
current = current.next
```
阅读全文