顺序表

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

顺序表(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--;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值