创建顺序表,实现创建,插入,修改,删除,清空,查找等功能
时间: 2024-09-16 16:00:58 浏览: 10
创建顺序表,通常是指在一个数组或动态内存中按照特定顺序存储元素的数据结构。以下是使用C++实现一个基本顺序列表(简单版本)的一些关键函数:
```cpp
#include <iostream>
using namespace std;
// 定义顺序表模板类
template <typename T>
class SimpleList {
private:
T* data; // 存储数据的指针
int size; // 列表长度
int capacity; // 当前容量
public:
// 构造函数,初始化大小为0
SimpleList() : data(nullptr), size(0), capacity(5) {}
// 创建函数,分配内存并设置初始容量
void create(int newCapacity = 10) {
if (data) {
delete[] data;
}
data = new T[newCapacity];
capacity = newCapacity;
}
// 插入元素到列表末尾
void insert(T value) {
if (size == capacity) {
resize(capacity * 2); // 如果已满,扩大容量
}
data[size++] = value;
}
// 修改指定位置的元素
void modify(int index, T newValue) {
if (index >= 0 && index < size) {
data[index] = newValue;
} else {
cout << "Invalid index!" << endl;
}
}
// 删除指定位置的元素
void remove(int index) {
if (index >= 0 && index < size - 1) {
memmove(&data[index], &data[index + 1], sizeof(T) * (size - index - 1));
size--;
} else {
cout << "Invalid index!" << endl;
}
}
// 清空列表
void clear() {
delete[] data;
data = nullptr;
size = 0;
capacity = 5; // 你可以选择保留一些默认容量
}
// 查找元素
bool find(T value) const {
for (int i = 0; i < size; i++) {
if (data[i] == value) {
return true;
}
}
return false;
}
// 显示列表内容
void display() const {
for (int i = 0; i < size; i++) {
cout << data[i] << " ";
}
cout << endl;
}
~SimpleList() { // 析构函数,释放内存
if (data) {
delete[] data;
}
}
};
int main() {
SimpleList<int> list;
list.create();
list.insert(1);
list.insert(2);
list.display(); // 输出: 1 2
list.modify(0, 3);
list.display(); // 输出: 3 2
list.remove(1);
list.display(); // 输出: 3
return 0;
}
```