顺序表

来源:互联网 发布:淘宝信誉良好加群短信 编辑:程序博客网 时间:2024/04/20 04:59

顺序存储方法
 即把线性表的结点按逻辑次序依次存放在一组地址连续的存储单元里的方法。 

顺序表(Sequential List)
     用顺序存储方法存储的线性表简称为顺序表(Sequential List)。

头文件:

#define LISTSIZE 100

template <class T>
class list
{
 T data[LISTSIZE];
 int length;
 public:
  //初始化
  void Initlist();
  //表长度
  int listLength();
  //得到指下结点
  T GetNode(int i);
  //插入结点
  void InsertNode(T x, int i);
  //删除结点
  void DeleteNode(int i);
};

源文件:

//初始化
template <class T>
void list<T>::Initlist()
{
 length = 0;
}

//表长度
template <class T>
int list<T>::listLength()
{
 return length;
}

//得到指下结点
template <class T>
T list<T>::GetNode(int i)
{
 if(i<1 || i>length-1)
 {
  cout<<"error";
  exit(1);
 }
 return data[i-1];
}

//插入结点
template <class T>
void list<T>::InsertNode(T x, int i)
{
 if(i<1 || i>length+1)
 {
  cout<<"error";
  exit(1);
 }
 if(length == LISTSIZE)
 {
  cout<<"overflow";
  exit(1);
 }
 for(int j=length-1; j>=i-1; j--)
 {
  data[j+1] = data[j];
 }
 data[i-1] = x;
 length++;
}
//删除结点
template <class T>
void list<T>::DeleteNode(int i)
{
 if(i<1 || i>length)
 {
  cout<<"error";
  exit(1);
 }
 for(int j=i-1; j<length-1; j++)
 {
  data[j] = data[j+1];
 }
 length--;
}