用c++写线性表,实现插入,删除,查找功能
时间: 2024-03-04 17:49:23 浏览: 74
C++通过类实现线性表
好的,我可以为您提供一个基于C++的线性表的实现示例,其中包括插入、删除和查找功能。
```c++
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 线性表的最大长度
template <typename T>
class LinearList {
private:
T data[MAX_SIZE]; // 存储数据元素的数组
int length; // 线性表的长度
public:
LinearList() { length = 0; } // 构造函数,初始化长度为0
// 插入操作,将元素插入到指定位置
bool insert(int index, T value) {
if (index < 0 || index > length || length >= MAX_SIZE) {
return false; // 插入位置不合法或线性表已满,返回false
}
for (int i = length - 1; i >= index; i--) {
data[i + 1] = data[i]; // 将指定位置及其后面的元素后移一位
}
data[index] = value; // 将元素插入到指定位置
length++; // 线性表长度加1
return true; // 插入成功,返回true
}
// 删除操作,删除指定位置的元素
bool remove(int index) {
if (index < 0 || index >= length) {
return false; // 删除位置不合法,返回false
}
for (int i = index; i < length - 1; i++) {
data[i] = data[i + 1]; // 将指定位置后面的元素前移一位
}
length--; // 线性表长度减1
return true; // 删除成功,返回true
}
// 查找操作,查找指定元素在线性表中的位置
int search(T value) {
for (int i = 0; i < length; i++) {
if (data[i] == value) {
return i; // 找到指定元素,返回其位置
}
}
return -1; // 未找到指定元素,返回-1
}
// 输出线性表中的所有元素
void print() {
for (int i = 0; i < length; i++) {
cout << data[i] << " ";
}
cout << endl;
}
};
int main() {
LinearList<int> list;
list.insert(0, 1);
list.insert(1, 3);
list.insert(1, 2);
list.print(); // 输出1 2 3
list.remove(2);
list.print(); // 输出1 2
cout << list.search(2) << endl; // 输出1
cout << list.search(3) << endl; // 输出-1
return 0;
}
```
在上面的代码中,我们使用模板类`LinearList`来定义线性表,其中`T`表示数据元素的类型。线性表的最大长度为`MAX_SIZE`,存储数据元素的数组为`data`,线性表的长度为`length`。
具体实现中,我们定义了插入、删除、查找和输出线性表中所有元素的函数。插入函数`insert`将元素插入到指定位置,删除函数`remove`删除指定位置的元素,查找函数`search`查找指定元素在线性表中的位置,输出函数`print`输出线性表中的所有元素。
在`main`函数中,我们通过调用上述函数来对线性表进行操作。
阅读全文