链表由一系列的节点组成,每个节点包含两部分:数据域和指针域。数据域用于存储元素的值,指针域用于指向下一个节点的地址。通过节点之间的指针连接,形成一个链式结构。
下面是一个简单的链表的定义和实例:
class Node:
def __init__(self, data):
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 is not None:
current = current.next
current.next = new_node
def display(self):
current = self.head
while current is not None:
print(current.data, end=" ")
current = current.next
print()
# 创建一个链表实例
my_list = LinkedList()
# 向链表中添加元素
my_list.append(1)
my_list.append(2)
my_list.append(3)
# 打印链表中的元素
my_list.display()
输出结果为:
1 2 3
在上述示例中,我们定义了一个Node
类用于表示链表的节点,其中data
属性存储节点的值,next
属性指向下一个节点。然后,我们定义了LinkedList
类用于操作链表,其中head
属性指向链表的头节点。
在append
方法中,我们创建一个新节点,并将其添加到链表的末尾。如果链表为空,则将新节点设置为头节点;否则,我们遍历链表,找到最后一个节点,然后将新节点连接到最后一个节点的next
指针上。
在display
方法中,我们遍历链表并打印每个节点的值。
以上就是线性表的链表表示和一个简单的链表实例。链表的优点是可以动态地插入和删除元素,但在访问特定位置的元素时需要遍历整个链表。