C++实现数据结构插入删除查找代码
时间: 2024-09-29 21:10:24 浏览: 38
在C++中,实现数据结构如数组、链表、栈、队列或更复杂的数据结构(比如树和图),插入、删除和查找操作的具体代码会依赖于所选择的数据结构。这里我会给出几个基本例子:
1. **数组插入和查找(线性搜索)**:
```cpp
#include <iostream>
using namespace std;
// 示例:整型数组
int arr[5]; // 假设大小已初始化
void insert(int value, int index) {
if (index >= 0 && index < sizeof(arr)) { // 防止越界
arr[index] = value;
} else {
cout << "Index out of range!" << endl;
}
}
int find(int target) {
for (int i = 0; i < sizeof(arr); ++i) {
if (arr[i] == target) return i; // 返回目标值的索引
}
return -1; // 如果找不到,返回-1
}
// 使用示例
int main() {
insert(42, 0);
int position = find(42);
if (position != -1) cout << "Found at index " << position << endl;
return 0;
}
```
2. **链表插入、删除和查找**:
```cpp
struct Node {
int data;
Node* next;
};
class LinkedList {
private:
Node* head;
public:
void insert(int value) {
Node* newNode = new Node{value, nullptr};
if (!head) {
head = newNode;
} else {
Node* temp = head;
while (temp->next) {
temp = temp->next;
}
temp->next = newNode;
}
}
int find(int target) {
Node* temp = head;
while (temp) {
if (temp->data == target) return true; // 返回true表示找到
temp = temp->next;
}
return false; // 没有找到返回false
}
// 删除操作略...
};
```
注意:链表的删除操作需要额外考虑头节点、空链表以及链表中间节点的情况。
阅读全文