顺序表
//顺序表结构体定义 #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; } //