向靜態生成表中插入元素:
向順序表Sqlist中第i個位置插入元素item, 該順序表原長度為n
void InsertElem(ElemType Sqlist[], int &n, int i, ElemType item){
int t;
if(n==MaxSize || i<1 || i>n+1)
exit(0); //非法插入
for(t=n-1; t>=i-1; t--)
Sqlist[t+1]=Sqlist[t]; //將i-1以后的元素順序后移一個元素的位置
Sqlist[i-1]=item; //在第i個位置插入元素item
n=n+1; //表長加1
}
向順序表L中第i個位置上插入元素item,並將順序表長度加1
void InsertElem(Sqlist *L, int i, ElemType item){
ElemType *base, * insertPtr, *p;
if(i<1||i>L->length+1) exit(0); //非法插入
if(L->length>=L->listsize)
{
base=(ElemType*)realloc(L->elem, (L->listsize+10)*sizeof(ElemType));
//重新追加空間
L->elem=base; //更新內存基地址
L->listsize=L->listsize+100; //存儲空間增大100單元
}
insertPtr=&(L->elem[i-1]); //insert為插入位置
for(p=&(L->elem[L->length-1]); p>= insertPtr; p--)
*(p+1)=*p;
*insertPtr=item; //在第i個位置上插入元素item
L->length++; //表長加1
}