当前位置:首页 > Python > 正文

链表从零开始(Python手把手教你实现单向链表)

在学习Python链表之前,你可能已经熟悉了列表(list)这种内置的数据结构。但你知道吗?链表是一种更底层、更灵活的数据结构,尤其在需要频繁插入和删除元素的场景中表现优异。本教程将带你从零开始,用Python一步步实现一个单向链表,即使你是编程小白也能轻松上手!

什么是链表?

链表是由一系列“节点”(Node)组成的线性数据结构。每个节点包含两部分:

  • 数据域:存储实际的数据(比如数字、字符串等)
  • 指针域:指向下一个节点的引用(在Python中就是对象引用)

与数组或Python列表不同,链表中的元素在内存中不是连续存储的,而是通过指针“串”起来的。

链表从零开始(Python手把手教你实现单向链表) Python链表 单向链表 链表实现 数据结构教程 第1张

为什么学习链表?

掌握链表实现有助于你深入理解计算机内存管理、指针概念以及更复杂的数据结构(如栈、队列、树等)。同时,在某些算法题或系统设计中,链表能提供比列表更优的时间复杂度。

步骤一:定义节点类(Node)

首先,我们需要创建一个表示链表节点的类:

class Node:    def __init__(self, data):        self.data = data      # 存储数据        self.next = None      # 指向下一个节点,初始为None

步骤二:定义链表类(LinkedList)

接下来,我们创建一个链表类,并实现几个基本操作:添加节点、遍历打印、获取长度。

class LinkedList:    def __init__(self):        self.head = None  # 链表的头节点,初始为空    def append(self, data):        """在链表末尾添加新节点"""        new_node = Node(data)        if not self.head:            self.head = new_node            return        last = self.head        while last.next:            last = last.next        last.next = new_node    def display(self):        """打印整个链表"""        current = self.head        elements = []        while current:            elements.append(str(current.data))            current = current.next        print(" -> ".join(elements) + " -> None")    def length(self):        """返回链表长度"""        count = 0        current = self.head        while current:            count += 1            current = current.next        return count

步骤三:测试我们的链表

现在,让我们创建一个链表并添加一些数据:

# 创建链表实例my_list = LinkedList()# 添加元素my_list.append(10)my_list.append(20)my_list.append(30)# 打印链表my_list.display()  # 输出: 10 -> 20 -> 30 -> None# 获取长度print("链表长度:", my_list.length())  # 输出: 链表长度: 3

扩展功能(可选)

你可以继续为链表添加更多功能,例如:

  • prepend(data):在头部插入节点
  • delete(data):删除指定值的节点
  • search(data):查找是否存在某个值

这些操作能进一步提升你对数据结构教程的理解。

总结

通过本教程,你已经学会了如何用Python实现一个基础的单向链表。虽然Python内置的列表非常强大,但理解链表的底层原理对于提升编程能力至关重要。希望这篇Python链表入门教程能为你打开数据结构的大门!

提示:动手敲一遍代码,比只看十遍都有效!