将x插入到递增有序的顺序表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Status OrderListInsert-sq(SqList va, ElemType x) {
//将x插入到递增有序的顺序表va中,插入后va仍然递增有序(算法1)
if (va.length==va.listsize){
newbase=(ElemType *)realloc(va.elem,(va.listsize+LISTINCREMENT)*sizeof(ElemType));
if (!newbase) exit(OVERFLOW);
va.elem=newbase;
va.listsize+=LISTINCREMENT;
}//当前存储空间已满,增加分配空间
if (!va.length) {va.elem[0]=x; ++va.length; return OK;}
q=&(va.elem[0]);
while (*q<=x)&&(q<=&(va.elem[va.length-1])) ++q; //查找插入位置
for (p=&(va.elem[va.length-1]); p>=q; --p) *(p+1)=*p;
*q=x;
++va.length;
return OK;
}//OrderListInsert-sq
 



















Status OrderListInsert-sq(SqList va, ElemType x) {
//将x插入到递增有序的顺序表va中,插入后va仍然递增有序(算法2)
if (va.length==va.listsize){
newbase=(ElemType *)realloc(va.elem,(va.listsize+LISTINCREMENT)*sizeof(ElemType));
if (!newbase) exit(OVERFLOW);
va.elem=newbase;
va.listsize+=LISTINCREMENT;
}//当前存储空间已满,增加分配空间
if (!va.length) {va.elem[0]=x; ++va.length; return OK;}
p=&(va.elem[va.length-1]);
while (P>=&(va.elem[0])&&*p>x) {*(p+1)=*p; --p;}
*(p+1)=x;
++va.length;
return OK;
}//OrderListInsert-sq
 

相关文档
最新文档