如果需要频繁的插入数据或删除数据,那就需要我们
亲爱的————大名鼎鼎的————链表!!!
链表是一种数据结构,它由一系列的节点组成,每个节点都包含一个数据元素和一个指向下一个节点的指针。链表中的节点不一定是连续存储的,它们可以随机分布在内存中。通过将节点的指针连接起来,就可以形成一个链表。
链表有多种类型,包括单向链表、双向链表和循环链表。
下面是一个简单的用C++实现单向链表的例子:
#include <iostream>
using namespace std;
// 定义链表节点结构体
struct Node {
int data; // 数据元素
Node* next; // 指向下一个节点的指针
};
// 定义链表类
class LinkedList {
private:
Node* head; // 头节点指针
public:
// 构造函数
LinkedList() {
head = nullptr;
}
// 在链表尾部添加节点
void append(int data) {
Node* newNode = new Node;
newNode->data = data;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 打印链表
void printList() {
Node* current = head;
while (current != nullptr) {
cout << current->data << " ";
current = current->next;
}
cout << endl;
}
};
int main() {
LinkedList list;
// 添加节点
list.append(1);
list.append(2);
list.append(3);
list.append(4);
// 打印链表
list.printList();
return 0;
}
这个例子演示了如何使用单向链表类LinkedList实现一个简单的链表。在main函数中,我们创建了一个LinkedList对象list,并通过调用append函数向链表中添加节点。最后,调用printList函数打印链表中的所有元素。
输出结果为:1 2 3 4
这说明链表的添加和打印功能都正常工作。你可以根据需要定义其他操作,例如删除节点、插入节点等。