C++实现顺序表的代码
时间: 2024-11-10 09:26:53 浏览: 3
在C++中,我们可以使用数组(类似于动态大小的一维数组)来实现基本的顺序表结构。下面是一个简单的顺序表模板类的例子,它包含插入、删除和查找元素的功能:
```cpp
template <typename T>
class SequenceList {
private:
std::size_t size;
T* elements; // 存储数据的数组
public:
SequenceList() : size(0), elements(new T[0]) {}
~SequenceList() { delete[] elements; }
void insert(int index, const T& value) {
if (index > size) {
resize(index);
}
else {
for (std::size_t i = size; i >= index; --i) {
elements[i] = elements[i - 1];
}
elements[index] = value;
++size;
}
}
void remove(int index) {
if (index < size) {
for (std::size_t i = index; i < size - 1; ++i) {
elements[i] = elements[i + 1];
}
--size;
}
}
bool find(const T& value, std::size_t& position) const {
for (position = 0; position < size; ++position) {
if (elements[position] == value) {
return true;
}
}
return false;
}
// 添加其他必要的操作...
};
// 使用示例
int main() {
SequenceList<int> list;
list.insert(0, 5);
list.insert(2, 7);
if (list.find(7, std::size_t{2})) {
std::cout << "Found 7 at position 2" << std::endl;
} else {
std::cout << "7 not found" << std::endl;
}
return 0;
}
```
在这个例子中,`SequenceList`模板类是一个动态数组,通过`resize`函数可以自动调整存储空间。注意这只是一个基础版本,实际应用中可能需要考虑更多的边界条件处理和错误检查。
阅读全文