顺序表
Status InsertSq(SqList &va,ElemType e)
{
//顺序表va中的元素非递减有序,将x插入到顺序表的适当位置,以保持该表的有序性
ElemType *newbase,*p;
printf("%d\n",e);
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;
}
for(p=va.elem+va.length-1;p>=va.elem;p--)
{
if(*p>e)
*(p+1)=*p;
else
{
*(p+1)=e;
break;
}
}
va.length++;
return OK;
}
单链表
Status ListInsertX_Link(LinkList L,ElemType e)
{
/*在带头结点的单链表中适当位置之前插入元素e 保持非递减有序/**/
LinkList p=L,s;
while (p->next && p->next->data < e )
{
p=p->next;
}
s=(LinkList)malloc(sizeof(struct LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}