下面是Python操作链表的示例代码的完整攻略。
什么是链表?
链表是一种常见的数据结构,由若干个节点组成,每个节点包含两个部分,一个是数据域,另一个是指针域。指针指向下一个节点的地址,形成了链式存储结构。链表分为单向链表、双向链表和循环链表。
Python操作链表基础知识
在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
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
# 遍历链表
def traverse(self):
node = self.head
while node:
print(node.data)
node = node.next
链表的示例应用
1. 反转链表
假设有一个链表如下所示:
1 -> 2 -> 3 -> 4 -> 5
如何将其反转为下面这个样子:
5 -> 4 -> 3 -> 2 -> 1
下面是一个示例代码,实现了链表反转的功能。
def reverse_list(lst):
prev = None
current = lst.head
while current:
nxt = current.next
current.next = prev
prev = current
current = nxt
lst.head = prev
2. 删除链表中指定元素
假设有一个链表如下所示:
1 -> 2 -> 3 -> 4 -> 5
如何删除链表中指定元素,比如删除元素3,使得链表变为下面这个样子:
1 -> 2 -> 4 -> 5
下面是一个示例代码,实现了在链表中删除指定元素的功能。
def delete_node(lst, data):
current_node = lst.head
if current_node and current_node.data == data:
lst.head = current_node.next
current_node = None
return
prev = None
while current_node and current_node.data != data:
prev = current_node
current_node = current_node.next
if current_node is None:
return
prev.next = current_node.next
current_node = None
以上就是Python操作链表的完整攻略,包括了链表的基础知识和两个示例应用的代码实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python操作链表的示例代码 - Python技术站