双向链表插入结点python
时间: 2023-06-28 07:08:47 浏览: 112
双向链表是一种链表结构,每个节点有两个指针,一个指向前一个节点,一个指向后一个节点。在 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 insert(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
curr_node = self.head
while curr_node.next is not None:
curr_node = curr_node.next
curr_node.next = new_node
new_node.prev = curr_node
def display(self):
curr_node = self.head
while curr_node is not None:
print(curr_node.data, end=' ')
curr_node = curr_node.next
```
在上面的代码中,我们定义了一个 `Node` 类和一个 `DoublyLinkedList` 类,其中 `Node` 类表示链表中的一个节点,包括数据 `data` 和指向前一个节点 `prev` 和后一个节点 `next` 的指针。`DoublyLinkedList` 类表示双向链表,包括头指针 `head` 和插入函数 `insert` 和展示函数 `display`。
在 `insert` 函数中,我们首先创建一个新节点 `new_node`,然后判断链表是否为空,如果为空,则将头指针指向新节点;否则,我们遍历整个链表,找到最后一个节点 `curr_node`,将其后一个节点指针 `next` 指向新节点,同时将新节点的前一节点指针 `prev` 指向当前节点 `curr_node`。
在 `display` 函数中,我们从头指针开始遍历整个链表,展示每个节点的数据 `data`。
阅读全文