数据结构双链表的尾差代码
时间: 2024-08-15 20:02:35 浏览: 39
数据结构中的双链表是一种包含两个指针的节点,每个节点通常有两个引用,分别指向前面的节点(头结点的前一个节点为NULL)和后面的节点。要在双链表中实现尾部插入操作(即计算新节点之后的距离),我们通常会维护一个额外的指针`tail`,它始终指向链表的最后一个节点。
以下是一个简单的Python示例,展示了如何在一个单向双链表中找到新节点插入后的距离:
```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 insert_at_tail(self, data, distance=0):
new_node = Node(data)
if not self.head:
self.head = self.tail = new_node
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node
return distance + 1 # 返回新尾部距离上一个尾部的位置,初始值为0
# 示例使用
dll = DoublyLinkedList()
dll.insert_at_tail(1, 0) # 新节点距离为1,因为这是第一个节点
dll.insert_at_tail(2, dll.insert_at_tail(3)) # 新节点3距离2,因为2是最近的尾部