c++数据结构顺序表代码
时间: 2023-07-30 08:10:47 浏览: 110
shunxubiao.rar_数据结构_C/C++_
以下是C++语言中实现顺序表的基本代码:
```cpp
#include<iostream>
using namespace std;
const int MAXSIZE = 100; // 定义最大容量
template <typename T>
class SeqList {
private:
T data[MAXSIZE]; // 存储元素的数组
int length; // 当前元素个数
public:
SeqList(); // 构造函数
~SeqList(); // 析构函数
bool isEmpty(); // 判断是否为空
bool isFull(); // 判断是否已满
int getLength(); // 获取当前元素个数
bool insert(T x, int pos); // 在指定位置插入元素
bool remove(int pos); // 删除指定位置的元素
bool get(int pos, T& x); // 获取指定位置的元素
void printList(); // 打印顺序表中所有元素
};
template <typename T>
SeqList<T>::SeqList() {
length = 0;
}
template <typename T>
SeqList<T>::~SeqList() {
length = 0;
}
template <typename T>
bool SeqList<T>::isEmpty() {
return length == 0;
}
template <typename T>
bool SeqList<T>::isFull() {
return length == MAXSIZE;
}
template <typename T>
int SeqList<T>::getLength() {
return length;
}
template <typename T>
bool SeqList<T>::insert(T x, int pos) {
if (pos < 1 || pos > length + 1 || isFull())
return false;
for (int i = length; i >= pos; i--) {
data[i] = data[i - 1];
}
data[pos - 1] = x;
length++;
return true;
}
template <typename T>
bool SeqList<T>::remove(int pos) {
if (pos < 1 || pos > length)
return false;
for (int i = pos - 1; i < length - 1; i++) {
data[i] = data[i + 1];
}
length--;
return true;
}
template <typename T>
bool SeqList<T>::get(int pos, T& x) {
if (pos < 1 || pos > length)
return false;
x = data[pos - 1];
return true;
}
template <typename T>
void SeqList<T>::printList() {
for (int i = 0; i < length; i++) {
cout << data[i] << " ";
}
cout << endl;
}
```
注意,这里使用了模板类,可以存储任意类型的元素。上述代码实现了顺序表的基本操作,包括插入、删除、获取指定位置元素、判断是否为空或已满、打印所有元素等。
阅读全文