顺序表:新建、插入、删除和查询(代码)
新建
#define MaxSize 50 //为顺序表分配内存空间
typedef int ElemType;
typedef struct {
ElemType data[MaxSize];//ElemType类型的顺序表,顺序表内长度最大为MaxSize,超出此长度为越界
int Length; //存储顺序表实际长度
}SqList; //定义顺序表类型
SqList L;//定义一个顺序表
//初始化顺序表
L.data[0]=0;//数组下标从0开始 1
L.data[1]=1;//2
L.data[2]=2;//3
L.data[3]=3;//4
//顺序表初始化之后必须给出初始化的实际长度
L.Length=4;//此时顺序表的实际长度
插入
/**
* ------插入某个元素------
* 主函数将顺序表传递进子函数,子函数中若会将此值改变,则子函数的形参将引用主函数的顺序表。
* 1.第一步:判断需要插入的位置是否合法
* 2.第二步:判断插入后数组是否会溢出
* 3.第三步:将i-1~L.Length位置所对应的值均往后移
* 4.第四步:将需要插入的值放入到要插入的地方
* 5.第五步:将顺序表的实际长度增加,增加的数量为插入值的个数
* @param L
* @param i
* @param inse
* @return
*/
bool ListInsert(SqList &L,int i,ElemType inse){
if(i<0 || i>L.Length){
return false;
}
if(L.Length+1>MaxSize){
return false;
}
for(int j=L.Length;j>=i;j--){
L.data[j]=L.data[j-1];
}
L.data[i-1]=inse;
L.Length++