📌  相关文章
📜  数据结构示例-单向链表的头部插入新节点(1)

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

数据结构示例-单向链表的头部插入新节点

在计算机科学中,数据结构是组织和存储数据的一种方式。其中,单向链表是一种常用的动态数据结构,它由多个节点组成,每个节点包含一个数据元素和一个指向下一个节点的引用。

本文将介绍如何在单向链表的头部插入新节点的操作,并提供相应的代码示例。

单向链表的结构

单向链表由一个个节点构成,每个节点包含两个部分:数据元素和指针。数据元素用于存储需要保存的数据,指针则指向下一个节点。最后一个节点的指针指向空。

下面是单向链表的一个示例:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

上述代码中,我们定义了一个Node类用于表示单向链表的节点,每个节点包含一个data属性和一个next属性。LinkedList类则用于管理这些节点,其中head属性指向链表的第一个节点。

头部插入新节点

在单向链表中插入新节点有两种方法:头部插入和尾部插入。头部插入是指将新节点插入在链表的头部,使其成为新的第一个节点。

下面是一个示例函数来演示如何在单向链表的头部插入新节点:

class LinkedList:
    def __init__(self):
        self.head = None
    
    def insert_at_head(self, data):
        new_node = Node(data)
        new_node.next = self.head
        self.head = new_node

上述代码中,我们定义了LinkedList类的insert_at_head方法,用于在链表的头部插入新节点。首先,我们创建了一个新的节点new_node,并将其next属性指向当前头节点。然后,我们将头指针self.head指向新节点,完成了头部插入操作。

示例运行

现在,我们可以创建一个单向链表,并调用insert_at_head方法插入新节点。以下是一个示例代码片段:

# 创建一个单向链表
linked_list = LinkedList()

# 插入新节点
linked_list.insert_at_head(1)
linked_list.insert_at_head(2)
linked_list.insert_at_head(3)

在上述代码中,我们首先创建了一个空的单向链表linked_list,然后连续插入了三个节点,其数据分别是1、2和3。插入操作都是在头部进行的,因此最终的链表顺序将是3 -> 2 -> 1。

总结

通过本文,我们了解了单向链表的基本结构和插入新节点的头部操作。该操作可以用于在任何时候在单向链表中添加新的节点。理解和掌握这些基础知识是编写高效数据结构和算法的关键步骤。