顺序表 :
#include<iostream>
using namespace std;
const int defaultSize = 100;
template <class T>
class SeqList {
private:
T* data; //存放数组
int maxSize; //最大可容纳表项的项数
int last; //当前已存在表项的最后位置(从0开始)
void reSize(int newSize); //改变data数组空间大小
public:
SeqList(int sz = defaultSize); //构造函数
SeqList(SeqList<T>& L); //复制构造函数
~SeqList() { delete[]data; } //析构函数
int Size()const { return maxSize; } //计算表最大可容纳表项的个数
int Length()const { return last + 1; } //计算表长
int Search(T& x)const; //搜索x在表中的位置,函数返回表项序号
int Locate(int i)const; //定位第i个表项,函数返回表项序号
bool getData(int i, T& x)const {
if (i > 0 && i <= last + 1) { x = data[i - 1]; return true; } //取第i个表项的值
else return false;
}
void setData(int i, T& x) {
if (i > 0 && i <= last + 1) data[i - 1] = x; //用x修改第i个表项的值
}
bool Insert(int i, T& X); //插入x在第i个表项后
bool Remove(int i, T& x); //删除第i个表项,通过x返回表项的的值
bool IsEmpty()const { return last == -1 ? true : false; } //判表空
bool IsFull()const { return (last+1==maxSize) ? true : false; } //判表满
void input(); //输入
void output(); //输出
void Sort(); //排序(从小到大)
SeqList<T>& operator=(SeqList<T>& L); //表整体赋值
friend ostream& operator<< <>(ostream& os, SeqList<T>& L); //重载&