c++采用结构体实现链表的初始化输入、插入、删除、查找、遍历的功能。自己输入元素,通过不同指令输出不同功能
时间: 2023-12-13 12:06:09 浏览: 78
基于C++实现(控制台)实现链表的插入、删除、打印等操作的函数(线程安全型数据结构)【100012475】
好的,以下是使用结构体实现链表的 C++ 代码,其中包括初始化输入、插入、删除、查找、遍历的功能:
```cpp
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
// 初始化链表
Node* init() {
Node* head = new Node;
head->data = 0;
head->next = NULL;
return head;
}
// 插入节点
void insert(Node* head, int data) {
Node* p = new Node;
p->data = data;
p->next = head->next;
head->next = p;
}
// 删除节点
void remove(Node* head, int data) {
Node* p = head->next;
Node* pre = head;
while (p != NULL) {
if (p->data == data) {
pre->next = p->next;
delete p;
return;
}
pre = p;
p = p->next;
}
}
// 查找节点
Node* find(Node* head, int data) {
Node* p = head->next;
while (p != NULL) {
if (p->data == data) {
return p;
}
p = p->next;
}
return NULL;
}
// 遍历链表
void traverse(Node* head) {
Node* p = head->next;
while (p != NULL) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
int main() {
Node* head = init();
int data;
while (true) {
cout << "请输入指令:1.插入 2.删除 3.查找 4.遍历 5.退出" << endl;
int cmd;
cin >> cmd;
if (cmd == 1) {
cout << "请输入要插入的元素:" << endl;
cin >> data;
insert(head, data);
cout << "插入成功!" << endl;
} else if (cmd == 2) {
cout << "请输入要删除的元素:" << endl;
cin >> data;
remove(head, data);
cout << "删除成功!" << endl;
} else if (cmd == 3) {
cout << "请输入要查找的元素:" << endl;
cin >> data;
Node* p = find(head, data);
if (p == NULL) {
cout << "未找到该元素!" << endl;
} else {
cout << "找到该元素!" << endl;
}
} else if (cmd == 4) {
traverse(head);
} else if (cmd == 5) {
break;
} else {
cout << "指令无效!" << endl;
}
}
return 0;
}
```
运行程序后,会不断循环读取指令,根据不同指令执行不同的操作。可以通过输入数字 1、2、3、4 来进行插入、删除、查找、遍历操作,输入数字 5 退出程序。
阅读全文