顺序表中插入元素
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
顺序表中插入元素
用c语言编写程序在顺序表中l中第i个位置之前插入新的元素e #include
#include
#define ListInitSize 100
#define ListIncrement 10
#define overflow -1
#define ok 1
typedef struct{
int *elem;
int length;
int listSize;
}sqList;
typedef int status;
status initListSq(sqList &l){
l.elem =(int *)malloc(ListInitSize*sizeof(int));
if(!l.elem) exit(overflow);
else{
l.length = 0;
l.listSize = ListInitSize;
return ok;
}
}
/*插入元素*/
int InsertElem(sqList &l , int i , int e){
if(i<1 || i>l.length+1) exit(0);
else{
int * newbase;
if(l.length >= l.listSize){
newbase = (int *)realloc(l.elem,(l.listSize + ListIncrement)*sizeof(int));
if(!newbase) exit(0);
l.elem = newbase;
l.listSize += ListIncrement;
}
int *p = &(l.elem[i-1]);
for(int *q = &(l.elem[l.length - 1]) ; q>= p ; q--) *(q+1) = *q;
*p = e;
++l.length;
return ok;
}
}
void main()
{ status s;
sqList sq1;
s=initListSq(sq1);
//printf(