在 C++ 中创建链表

17 Mar 2025 | 5 分钟阅读

什么是链表?

链表是一种线性数据结构,由一系列节点组成,每个节点存储一段数据和对列表中下一个节点的引用(指针)。当集合大小未知或数据经常插入或删除时,链表对于存储数据集合很有用。

在 C++ 中,我们可以通过定义节点类和链表类来创建链表。节点类将表示列表中的单个节点,并包含一个数据字段和一个指向下一个节点的指针。链表类将包含一个指向列表中第一个节点的头指针,以及用于插入、删除和遍历列表中节点的各种方法。

以下是 C++ 中节点类的示例:

此节点类具有一个公共数据字段 `data`,类型为 int,以及一个指向列表中下一个节点的公共指针 `next`。它还有一个构造函数,用于初始化数据字段并将 `next` 指针设置为 `nullptr`。

以下是如何使用节点和链表类在 C++ 中创建和操作链表的示例:

输出

Create Linked List In C++

说明

此链表类具有一个指向列表中第一个节点的私有字段 `head`,以及用于在列表开头和结尾插入和删除节点以及将列表打印到控制台的各种公共方法。此程序将创建一个链表,在列表开头和结尾插入一些节点,在列表开头和结尾删除一个节点,并将列表打印到控制台。

以下是使用模板类在 C++ 中创建链表的示例:

输出

Create Linked List In C++

说明

在上面的代码中,我们定义了一个模板类 `Node`,它表示链表中的单个节点。`Node` 类具有一个公共数据字段 `data`,类型为 `T`(其中 `T` 是模板参数),以及一个指向列表中下一个节点的公共指针 `next`。它还有一个构造函数,用于初始化数据字段并将 `next` 指针设置为 `nullptr`。

我们还定义了一个模板类 `LinkedList`,它表示一个链表,并包含一个指向列表中第一个节点的私有字段 `head`。`LinkedList` 类具有用于在列表开头和结尾插入和删除节点以及将列表打印到控制台的各种公共方法。

`insertAtBeginning` 方法创建具有给定数据的新节点,并通过更新 `head` 指针将其插入列表的开头。`insertAtEnd` 方法创建具有给定数据的新节点,并通过遍历列表并更新最后一个节点的 `next` 指针将其插入列表的末尾。`deleteAtBeginning` 方法通过更新 `head` 指针并释放节点使用的内存来删除列表中的第一个节点。`deleteAtEnd` 方法通过遍历列表并更新倒数第二个节点的 `next` 指针来删除列表中的最后一个节点。`printList` 方法遍历列表并将每个节点的数据打印到控制台。

在 `main` 函数中,我们创建 `LinkedList` 类的一个实例,并调用各种方法来插入和删除节点以及打印列表。输出显示原始列表、删除开头节点后的列表以及删除结尾节点后的列表。