📜  在 python 中创建链表(1)

📅  最后修改于: 2023-12-03 14:51:05.698000             🧑  作者: Mango

在 Python 中创建链表

链表是一种常见的数据结构,可以用来存储一系列的元素。它由一系列的节点(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 中创建链表。我们首先定义了链表节点的类,然后通过定义链表的头节点来访问整个链表。我们还展示了如何遍历链表和添加节点。