Posted on 2012-03-01 00:53
hoshelly 閱讀(226)
評論(0) 編輯 收藏 引用 所屬分類:
DS && Algorithm
//靜態順序表的各種操作
#include<stdio.h>
#define MaxSize 10
void insertElem(int Sqlist[],int *len,int i,int x)//表首地址、表長、插入元素位置、待插入的元素值
{
int t,temp;
if(*len==MaxSize||i<1||i>*len+1)
{
printf("This insert is illegal\n");
return;
}
for(t=*len-1;t>=i-1;t--)
Sqlist[t+1]=Sqlist[t];//i-1后的元素都向后移一位
Sqlist[i-1]=x;//插入元素
*len=*len+1;//表長加1
}
void DelElem(int Sqlist[],int *len,int i)//向順序表中刪除元素
{
int j;
if(i<1||i>*len)
{
printf("This insert is illegal");
return;
}
for(j=i;j<=*len-1;j++)
Sqlist[j-1]=Sqlist[j];//將第i個元素之后的元素前移,覆蓋即刪除
*len=*len-1;
}
int main()
{
int Sqlist[MaxSize];
int len;
int i;
for(i=0;i<6;i++)
scanf("%d",&Sqlist[i]);
len=6;
for(i=0;i<len;i++)
printf("%d ",Sqlist[i]);
printf("\nThe spare length is %d\n",MaxSize-len);//顯示表中剩余空間
insertElem(Sqlist,&len,3,0);//在表中第3個位置插入整數0
for(i=0;i<len;i++)
printf("%d ",Sqlist[i]);
printf("\nThe spare length is %d\n",MaxSize-len);
insertElem(Sqlist,&len,11,0);
DelElem(Sqlist,&len,6);
for(i=0;i<len;i++)
printf("%d ",Sqlist[i]);
printf("\nThe spare length is %d\n",MaxSize-len);
return 0;
}