用c++设计一个静态数组存储结构的顺序表,实现依次输入整数数组元素,删除指定位置的数组元素,依次显示删除后数据表中的数据元素,查找指定位置的数据元素,找到则显示位置,没找到显示0
时间: 2024-10-21 07:10:33 浏览: 19
C++实现基于静态数组的顺序表
5星 · 资源好评率100%
在 C++ 中,你可以通过创建一个名为 `StaticArray` 的类来实现这个功能。首先,我们需要定义一个静态数组模板,然后提供插入、删除、查找等操作的方法。这是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
template <typename T, int SIZE>
class StaticArray {
public:
// 定义静态数组
T elements[SIZE];
// 插入元素到数组末尾
void insert(int index, const T& value) {
if (index >= 0 && index < SIZE) {
for (int i = SIZE - 1; i > index; --i)
elements[i] = elements[i - 1];
elements[index] = value;
} else {
cout << "Invalid index!" << endl;
}
}
// 删除指定位置的元素
void remove(int index) {
if (index >= 0 && index < SIZE) {
for (int i = index; i < SIZE - 1; ++i)
elements[i] = elements[i + 1];
elements[SIZE - 1] = T(); // 空白区域或者默认值表示已删除
} else {
cout << "Invalid index!" << endl;
}
}
// 显示数组内容
void display() {
for (int i = 0; i < SIZE; ++i)
cout << (i == findElementIndex(i) ? to_string(elements[i]) : "0") << " ";
cout << endl;
}
// 查找指定位置的元素并返回其在数组中的实际位置
int findElementIndex(int index) {
for (int i = 0; i < SIZE; ++i)
if (elements[i] == (T)i) // 假设我们按值查找,如果需要其他条件替换这里的判断
return i;
return 0; // 没有找到,返回0
}
private:
// 添加其他私有成员或方法可以进一步增强功能
};
int main() {
StaticArray<int, 5> arr;
arr.insert(0, 10);
arr.insert(2, 20);
arr.insert(4, 40);
arr.display(); // 输出:10 0 20 40 0
arr.remove(2);
arr.display(); // 输出:10 0 40 0
int position;
cout << "Enter an index to search: ";
cin >> position;
arr.display();
cout << "Found at position: " << arr.findElementIndex(position) << endl;
return 0;
}
```
在这个示例中,用户可以依次输入整数,动态添加到数组,并能删除指定位置的元素。同时,我们会显示删除后的数组以及查询指定位置的结果。
阅读全文