用c++语言建立一个顺序表,初始化的元素为{1,2,3,4},实现对顺序表的求长度,插入新元素,删除一个元素,查找,输出,和销毁顺序表这些功能
时间: 2024-11-09 16:28:18 浏览: 16
使用c++实现顺序表的基本操作:1、顺序表的初始化2、顺序表的长度3、顺序表插入元素4、删除顺序表元素5、遍历顺序表
在C++中,我们可以使用结构体(struct)或类(class)来创建一个简单的线性表(顺序表),这里我们使用类模板来实现通用的顺序表。以下是基本操作的实现:
```cpp
#include <iostream>
using namespace std;
template <typename T>
class SequenceList {
private:
int size;
T* elements; // 存储元素的指针
public:
// 构造函数,初始化元素数组
SequenceList(const vector<T>& initialElements) : size(initialElements.size()), elements(new T[size]) {
for (int i = 0; i < size; ++i)
elements[i] = initialElements[i];
}
~SequenceList() { delete[] elements; } // 销毁顺序表时释放内存
// 求长度
int length() const { return size; }
// 插入新元素
void insert(int index, const T& value) {
if (index >= 0 && index <= size) {
memmove(elements + index + 1, elements + index, sizeof(T) * (size - index));
elements[index] = value;
++size;
}
}
// 删除一个元素
void remove(int index) {
if (index >= 0 && index < size) {
memmove(elements + index, elements + index + 1, sizeof(T) * (size - index - 1));
--size;
}
}
// 查找
bool find(const T& value) const {
for (int i = 0; i < size; ++i)
if (elements[i] == value)
return true;
return false;
}
// 输出
void print() const {
for (int i = 0; i < size; ++i)
cout << elements[i] << " ";
cout << endl;
}
};
int main() {
SequenceList<int> list({1, 2, 3, 4});
list.print(); // 输出:1 2 3 4
list.insert(2, 5); // 插入元素5到索引2
list.print(); // 输出:1 2 5 3 4
list.remove(1); // 删除索引1的元素2
list.print(); // 输出:1 5 3 4
if (list.find(5)) // 查找元素5是否存在
cout << "Found 5." << endl;
return 0;
}
```
阅读全文