📅  最后修改于: 2023-12-03 14:51:05.698000             🧑  作者: Mango
链表是一种常见的数据结构,可以用来存储一系列的元素。它由一系列的节点(node)组成,每个节点包含一个元素和一个指向下一个节点的指针。Python 中没有内置的链表数据结构,但是我们可以通过自己编写代码来实现它。
我们首先需要定义链表节点。链表节点可以包含任意类型的元素,同时还需要有指向下一个节点的指针。我们可以用类来实现这个节点:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
这个类有一个构造函数 __init__
,可以用来初始化节点的数据和指针。data
参数用来存储节点的元素,next
参数则是指向下一个节点的指针,默认值为 None
。
我们可以用上面定义的节点类来创建链表。链表的头节点是第一个节点,链表中的每个节点都有一个指向下一个节点的指针,因此我们只需要知道头节点就可以访问整个链表。
下面是一个例子,展示如何创建一个简单的链表:
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
node = Node(data)
if self.head is None:
self.head = node
else:
curr = self.head
while curr.next is not None:
curr = curr.next
curr.next = node
这个类中包含一个 append
方法,可以用来向链表中添加节点。如果链表为空,我们将新节点设置为头节点;否则,我们遍历整个链表,并将新节点添加到链表的末尾。
为了访问链表中的节点,我们需要遍历整个链表。我们可以通过循环访问每个节点,并打印其数据。下面是一个例子,展示如何遍历链表:
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
node = Node(data)
if self.head is None:
self.head = node
else:
curr = self.head
while curr.next is not None:
curr = curr.next
curr.next = node
def print_list(self):
curr = self.head
while curr is not None:
print(curr.data)
curr = curr.next
这个类中包含一个 print_list
方法,可以用来遍历链表并打印节点的数据。
下面是一个完整的例子,展示如何使用上面定义的类来创建链表并访问它:
# 创建链表
llist = LinkedList()
# 添加节点
llist.append(1)
llist.append(2)
llist.append(3)
llist.append(4)
# 遍历链表
llist.print_list()
输出结果:
1
2
3
4
本文介绍了如何在 Python 中创建链表。我们首先定义了链表节点的类,然后通过定义链表的头节点来访问整个链表。我们还展示了如何遍历链表和添加节点。