float a[5]={10.0,10.1,10.2,10.3,10.4}用顺序表类实现的存储与基本操作,基本操作为:(1)建立含有若干个元素的顺序表;(2)对已建立的顺序表实现插入、删除、查找(按值、按位置)等操作。 要求:顺序表类定义成类模板
时间: 2024-09-19 14:17:19 浏览: 40
计算机二级python题库-基本操作题之计算球体表面积+体积.zip
在C++中,我们可以定义一个顺序表类模板`SequenceList<T>`来存储浮点数`float`类型的元素,并实现相应的插入、删除和查找操作。这里是一个简单的实现:
```cpp
template <typename T>
class SequenceList {
private:
int capacity;
T* elements; // 存储元素的数组
public:
// 构造函数,初始化容量和元素指针
SequenceList(int initial_capacity = 5) : capacity(initial_capacity), elements(new T[capacity]) {}
// 插入元素:按位置插入
void insert(int index, const T& value) {
if (index >= 0 && index < capacity) {
for (int i = capacity - 1; i > index; i--) {
elements[i] = elements[i - 1];
}
elements[index] = value;
} else {
throw std::out_of_range("Index out of range");
}
}
// 删除元素:按值删除第一个匹配项
bool remove(const T& value) {
for (int i = 0; i < capacity; i++) {
if (elements[i] == value) {
for (int j = i; j < capacity - 1; j++) {
elements[j] = elements[j + 1];
}
capacity--;
return true;
}
}
return false; // 如果未找到该值,则返回false
}
// 查找元素:按值查找,返回元素的位置,若不存在则返回-1
int find(const T& value) const {
for (int i = 0; i < capacity; i++) {
if (elements[i] == value) {
return i;
}
}
return -1;
}
// 清理资源(析构函数)
~SequenceList() {
delete[] elements;
}
};
// 示例
float a[] = {10.0, 10.1, 10.2, 10.3, 10.4};
SequenceList<float> list(5);
list.insert(2, 10.5); // 插入到第2个位置
if (list.remove(10.1)) { // 删除第一个10.1
// 打印剩余元素
for (int i = 0; i < list.capacity(); i++) {
std::cout << list.elements[i] << " ";
}
}
// 查找元素
int position = list.find(10.2);
if (position != -1) {
std::cout << "Found at position " << position << std::endl;
}
```
阅读全文