//顺序表结构体定义
#define maxsize 100
typedef struct
{
int date[maxsize];//存放顺序表元素的数组
int length;//存放顺序表长度
} sqlist;//sqlist 是别名.
//插入算法的思路
//如果插入位置不合理,抛出异常
//如果线性表长度大于等于数组长度,抛出异常
//从最后一个元素开始向前遍历到第i个位置,分别都将他们都向后移动一个单位
//将要插入的元素填入位置i处
//表长+1
/*初始条件:线性表已经存在。 0<=i<=List_length*/
/*操作:在线性表第i个元素之前插入数据元素e,线性表l的长度+1*/
int sqlistInsert(sqlist &l,int i,elmentype e)
{//i从0开始,代表数组的下标,[0,length]都可以插入,
int k=0;
if(l.length==maxsize||i>l.length||i<0)//顺序表已经满了或者i不在范围时,返回错误0,插入失败
return 0;//
for(k=l.length-1;k>=i;k--)
{
l.date[k+1]=l.date[k];
}
l.date[i]=e;
(l.length)++;
return 1;
}
//删除算法思路
//如果删除位置不合理,抛出异常
//取出删除元素
//从删除元素位置开始遍历到最后一个位置,分别都将他们向前移动一个位置
//表长-1
int deletelem(sqlist &l,int p, int &e)//需要改变的变量用引用型 在表l中,删除第i个位置的元素,用e保存
{
int i;
if(p<0||p>l.length-1)//顺序表的下标是【0,length-1】
return 0;
e = l.date[p];
for(i = p,i<l.length-1;i++)
l.date[i]=l.date[i+1];
l.length--;
return 1;
}
//