当前位置:实例文章 » 其他实例» [文章]C++--list简单实现

C++--list简单实现

发布人:shili8 发布时间:2025-01-19 07:13 阅读次数:0

**C++中的链表实现**

链表是一种常见的数据结构,用于存储和操作一系列元素。它通过指针连接这些元素,从而实现高效的插入、删除和查找等操作。在本文中,我们将介绍如何在C++中简单实现一个链表。

**链表的基本概念**

链表由一系列节点组成,每个节点包含两个部分:数据域(data)和指针域(next)。数据域存储具体的数据,而指针域则指向下一个节点。通过这种结构,链表可以动态地增长或缩小。

**链表的基本操作**

链表支持以下基本操作:

* **插入**:在链表中插入新元素。
* **删除**:从链表中删除指定元素。
* **查找**:在链表中查找指定元素。
* **遍历**:遍历整个链表。

**链表的实现**

下面是C++中链表的简单实现:

cpp#include <iostream>

// 节点结构体struct Node {
 int data; // 数据域 Node* next; // 指针域 // 构造函数 Node(int value) : data(value), next(nullptr) {}
};

class LinkedList {
private:
 Node* head_; // 头结点指针public:
 // 构造函数 LinkedList() : head_(nullptr) {}

 // 析构函数 ~LinkedList() { clear(); }

 // 插入新元素 void insert(int value) {
 Node* newNode = new Node(value);
 if (head_ == nullptr) {
 head_ = newNode;
 } else {
 Node* current = head_;
 while (current->next != nullptr) {
 current = current->next;
 }
 current->next = newNode;
 }
 }

 // 删除指定元素 void remove(int value) {
 if (head_ == nullptr) return;

 if (head_->data == value) {
 Node* temp = head_;
 head_ = head_->next;
 delete temp;
 return;
 }

 Node* current = head_;
 while (current->next != nullptr) {
 if (current->next->data == value) {
 Node* temp = current->next;
 current->next = current->next->next;
 delete temp;
 return;
 }
 current = current->next;
 }
 }

 // 查找指定元素 bool find(int value) {
 Node* current = head_;
 while (current != nullptr) {
 if (current->data == value) return true;
 current = current->next;
 }
 return false;
 }

 // 遍历链表 void traverse() {
 Node* current = head_;
 while (current != nullptr) {
 std::cout << current->data << " ";
 current = current->next;
 }
 std::cout << std::endl;
 }

 // 清空链表 void clear() {
 Node* current = head_;
 while (current != nullptr) {
 Node* temp = current;
 current = current->next;
 delete temp;
 }
 head_ = nullptr;
 }
};


**示例代码**

cppint main() {
 LinkedList list;

 // 插入元素 list.insert(1);
 list.insert(2);
 list.insert(3);

 // 遍历链表 std::cout << "链表内容:";
 list.traverse();

 // 删除指定元素 list.remove(2);

 // 遍历链表 std::cout << "链表内容(删除后):";
 list.traverse();

 return0;
}


**输出结果**

链表内容:123链表内容(删除后):13


在本文中,我们介绍了C++中的链表实现,包括链表的基本概念、基本操作和链表的实现。我们还提供了示例代码和输出结果,以帮助读者更好地理解链表的使用和应用。

其他信息

其他资源

Top