首先利用抽象类LinearList来定义定义一个线性表
template<class T>
class LinearList {
public:
virtual ~LinearList() {
};
virtual bool empty()const = 0;
virtual int size()const = 0;
virtual T &Getelement(int index)const = 0;//返回index下标处元素
virtual int ElementPos(const T &Element)const = 0;//返回Element第一次出现位置
virtual void earse(int Index) = 0;//删除Index下标处元素
virtual void insert(int Index, const T &Element) = 0;//插入Element至Index下标处
virtual void ouput(ostream &out)const = 0;//输出流对象
};
为了方便起见自定义一个异常类用来在必要时抛出下标越界异常
class illegalIndexValue {
public:
illegalIndexValue() : message("Illegal index value") {
}
private:
string message;
};
接下来就是自定义的一个数组类ArrayList,继承自LinearList,在实现虚函数的基础上增加必要功能。
template<class T>
class ArrayList :public LinearList<T> {
public:
ArrayList(int x = 10)