用C++实现列表的插入、删除、查找、遍历,具体用结构体实现。
时间: 2024-05-13 11:16:37 浏览: 45
好的,以下是一个简单的用结构体实现列表的示例代码:
```c++
#include <iostream>
using namespace std;
// 定义结构体
struct Node {
int data; // 数据域
Node* next; // 指针域
};
// 初始化链表
Node* initList() {
Node* head = new Node;
head->data = 0;
head->next = NULL;
return head;
}
// 插入元素
void insertNode(Node* head, int value) {
Node* p = new Node;
p->data = value;
p->next = head->next;
head->next = p;
}
// 删除元素
void deleteNode(Node* head, int value) {
Node* p = head->next;
Node* pre = head;
while (p != NULL) {
if (p->data == value) {
pre->next = p->next;
delete p;
break;
}
pre = p;
p = p->next;
}
}
// 查找元素
bool findNode(Node* head, int value) {
Node* p = head->next;
while (p != NULL) {
if (p->data == value) {
return true;
}
p = p->next;
}
return false;
}
// 遍历链表
void traverseList(Node* head) {
Node* p = head->next;
while (p != NULL) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
int main() {
Node* list = initList();
insertNode(list, 1);
insertNode(list, 2);
insertNode(list, 3);
traverseList(list);
deleteNode(list, 2);
traverseList(list);
bool flag = findNode(list, 3);
if (flag) {
cout << "3 is found" << endl;
}
else {
cout << "3 is not found" << endl;
}
return 0;
}
```
在这个示例代码中,我们定义了一个 `Node` 结构体,其中包含了数据域 `data` 和指针域 `next`。然后我们用 `initList()` 函数初始化一个空链表,并用 `insertNode()` 函数向链表中插入元素,用 `deleteNode()` 函数删除元素,用 `findNode()` 函数查找元素,用 `traverseList()` 函数遍历链表。
这只是一个简单的示例,实际上链表的实现还可以更加复杂,比如涉及到链表的排序、合并等操作。不过如果你理解了上面这个示例,那么理解更复杂的链表操作应该也不会太难。
阅读全文