c++,设计一个算法,对顺序表L进行遍历并输出每个数据元素的数据值。
时间: 2024-10-17 16:04:08 浏览: 42
数据结构与算法基础课程 C语言C++程序语言设计教程 2_2线性表-顺序表 共12页.pptx
在 C++ 中,设计一个简单的遍历顺序表(数组)并打印其元素值的算法可以按以下步骤进行:
```cpp
#include <iostream>
// 定义顺序表(数组)
template <typename T>
class SequentialList {
private:
T* elements; // 存储元素的指针
int size; // 序列长度
public:
// 构造函数,初始化空列表
SequentialList() : elements(nullptr), size(0) {}
// 添加元素到列表末尾
void add(T value) {
if (size == capacity()) resize(capacity() * 2);
elements[size++] = value;
}
// 遍历并打印元素
void traverse() const {
for (int i = 0; i < size; ++i) {
std::cout << "Element at index " << i << ": " << elements[i] << "\n";
}
}
// 判断是否已满
bool is_full() const {
return size == capacity();
}
// 私有成员函数用于动态调整容量
private:
int capacity() const {
return sizeof(T) / sizeof(T[0]);
}
// 当列表接近满时,扩大存储空间
void resize(int new_capacity) {
T* new_elements = new T[new_capacity];
for (int i = 0; i < size; ++i)
new_elements[i] = elements[i];
delete[] elements;
elements = new_elements;
}
};
int main() {
// 创建一个顺序表实例,并添加一些元素
SequentialList<int> list;
list.add(1);
list.add(2);
list.add(3);
// 遍历并打印元素
list.traverse();
return 0;
}
```
在这个例子中,`SequentialList` 类定义了一个静态大小的顺序表,通过 `add()` 函数添加元素,并在需要时自动扩展。`traverse()` 函数遍历整个列表,将每个元素值打印出来。
阅读全文