首页 > 代码库 > 顺序表类的定义

顺序表类的定义

/////////////////////////////////////顺序表类的定义// #include "SqList.h"//////////////////////////////////template<class T>class SqList{private:    T* elem;      //表首址    int length;   //表长    int listsize; //表容量public:     //构造函数,创建容量为m的空表    SqList(int m)            {                                elem = new T[m];         //申请表空间      length = 0;              //空表,表长为0      listsize = m;            //表容量为m    }    //析构函数,删除表空间    ~SqList()                   {      delete [] elem;         //释放表空间      length = 0;      listsize = 0;    }     //创建具有n个元素的线性表    void CreateList(int n)    {      if(n>listsize) throw"参数非法";      cout<<"请依次输入"<<n<<"个元素值:"<<endl;      for(int i =1;i<=n;i++)       cin>>elem[i-i];      length = n;    }     //在表中第i个位置插入元素    void Insert(int i,T e)     {  //在第i个位置插入元素,如果不能插入,显示异常信息      if(length>=listsize)throw"上溢";      if(i<1||i>length+1)throw"插入位置异常";      for(int j = length;j>=i;j--)          elem[j] = elem[j-1];      elem[i-1] = e;      length++;    }    //删除表中的第i个元素    T Delete(int i)    {      T x;      if(length == 0)throw"下溢";      if(i<1||i>length+1)throw"删除位置异常";      x=elem[i-1];      for(int j=i;j<length;j++)          elem[j-1] = elem[j];      length--;      return x;    }    //获取第i个元素的值    T GetElem(int i)    {      T e;      if(i<1||i>length)throw"位置不合法";      e = elem[i-1];      return e;    }     //元素定位    int Locate(T e)    {      for(int i = 0;i<length;i++)          if(elemi[i] == e)                return i+1;  //找到,返回该元素在表中的位序          return 0;        //未找到,返回0    }    //清空表    void Clear()    {      length =0;    }    //测表是否空    int Empty()    {      if(length == 0)//判断表,若空,返回1.          return 1;      else           //不空,返回0          return 0;    }        //测表是否满    int Full()    {      if(length == listsize) //表满,返回1          return 1;      else                   //不满,返回0          return 0;    }    //返回表长    int Length()    {      return length;    }     //输出表元素    void ListDisp()      {      for(int i = 0;i<length;i++)      {        cout<<i+1<<"\t";        cout<<elem[i]<<endl;      }    }}

顺序表类的定义