线性表的基本操作有:删除、插入、合并、查找、修改...
下面根据函数的模块化,给出上述操作及选择排序的函数:
//删除
int deleteData(int *p,int len,int loc){
int i=loc; //i从loc开始往前递增
while(i<len-1){ //要删除的第i个及之后的单元有变化
*(p+i)=*(p+i+1); //第i个单元的值为第i+1的
i++;
}
len--;
return len; //返回值为新数组长度
}
//插入
int insertData(int *p,int len,int loc,int v){
int i=len; //i从len开始往前递减
while(i>loc){ //要增加的第i个及之后的单元有变化
*(p+i)=*(p+i-1); //向后移位(倒序腾位)
i--;
}
*(p+i)=v; //修改loc单元的值
len++;
return len; //返回值为新数组长度
}
//合并
int mergeData(int *p1,int l1,int *p2,int l2,int *p3){
int i=0,j=0,k=0; //分别是数组1、数组2,新数组的序号
while(i<l1&&j<l2) //2组数都没有比完
if(*(p1+i)<*(p2+j)){
*(p3+k)=*(p1+i); //把较小的赋到新的数组单元
k++;
i++;