Python实现链表数据结构
发布时间:2023-12-04 08:56:29
链表(Linked List)是一种常见的线性数据结构,它由节点(Node)构成,每个节点包含一个数据元素和一个指向下一个节点的指针。
Python中可以使用类来实现链表数据结构。下面是一个简单的链表实现:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def insert(self, data, pos):
if pos < 0 or pos > self.length():
raise IndexError("Index out of range")
new_node = Node(data)
if pos == 0:
new_node.next = self.head
self.head = new_node
else:
current = self.head
for _ in range(pos-1):
current = current.next
new_node.next = current.next
current.next = new_node
def remove(self, data):
if self.head is None:
return
if self.head.data == data:
self.head = self.head.next
return
current = self.head
while current.next:
if current.next.data == data:
current.next = current.next.next
return
current = current.next
def length(self):
count = 0
current = self.head
while current:
count += 1
current = current.next
return count
def display(self):
result = []
current = self.head
while current:
result.append(current.data)
current = current.next
return result
使用示例:
# 创建一个链表 linked_list = LinkedList() # 在链表末尾追加数据 linked_list.append(1) linked_list.append(2) linked_list.append(3) # 在指定位置插入数据 linked_list.insert(0, 0) linked_list.insert(4, 4) linked_list.insert(2.5, 3) # 删除指定数据的节点 linked_list.remove(2.5) # 计算链表长度 length = linked_list.length() # 打印链表的数据 data = linked_list.display() print(data) # [0, 1, 2, 3, 4] print(length) # 5
上述代码实现了一个基本的链表数据结构,并进行了一些常见操作,包括追加数据、插入数据、删除数据、计算链表长度和显示链表数据。
在使用时,可以根据实际需求修改其中的方法,以适应具体问题。链表数据结构可以用于实现其他高级数据结构,如队列、栈等,也可以用于解决一些算法问题。
