数据结构线性表全部代码
时间: 2023-06-28 08:15:15 浏览: 119
以下是 C++ 语言实现的线性表代码示例:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 线性表的最大长度
template <typename T>
class List {
public:
List() : length(0) {}
bool isEmpty() const {
return length == 0;
}
bool isFull() const {
return length == MAXSIZE;
}
int getLength() const {
return length;
}
bool insert(int pos, T value) {
if (pos < 1 || pos > length + 1 || isFull()) {
return false;
}
for (int i = length; i >= pos; i--) {
data[i] = data[i-1];
}
data[pos-1] = value;
length++;
return true;
}
bool remove(int pos) {
if (pos < 1 || pos > length || isEmpty()) {
return false;
}
for (int i = pos; i < length; i++) {
data[i-1] = data[i];
}
length--;
return true;
}
bool get(int pos, T& value) const {
if (pos < 1 || pos > length || isEmpty()) {
return false;
}
value = data[pos-1];
return true;
}
void print() const {
if (isEmpty()) {
cout << "The list is empty." << endl;
} else {
cout << "The list contains " << length << " element(s): ";
for (int i = 0; i < length; i++) {
cout << data[i] << " ";
}
cout << endl;
}
}
private:
T data[MAXSIZE]; // 存放线性表中的元素
int length; // 线性表的长度
};
int main() {
List<int> list;
list.insert(1, 10);
list.insert(2, 20);
list.insert(3, 30);
list.print();
int value;
list.get(2, value);
cout << "The element at position 2 is " << value << endl;
list.remove(2);
list.print();
return 0;
}
```
该示例代码定义了一个模板类 `List`,支持插入、删除、获取、输出等基本操作。其中,线性表的最大长度为 `MAXSIZE`,通过数组 `data` 存储元素,通过变量 `length` 记录线性表的当前长度。示例代码中使用了模板类,可以方便地存储不同类型的元素。
阅读全文