【数据结构】noj001 顺序表的插入

#include

int main()

{

int n,i,x,j,k;

int seq[1001];

//输入

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&seq[i]);

}

scanf("%d",&x);

//排序(分类讨论)

if(x>seq[n-1])  //x比顺序表最后一个还大时,直接插入到最后一个

{

seq[n]=x;

}

else if(x

{

for(j=n;j>0;j--)

{

seq[j]=seq[j-1];

}

seq[0]=x;

}

else  //x位于顺序表中间时

{

for(k=0;k

{

if(x>seq[k]&&x<=seq[k+1])  //找到x的位置 !!有可能与k+1的大小相等

{

for(j=n;j>k+1;j--)  //后面的依次向后

{

seq[j]=seq[j-1];

}

seq[k+1]=x;

}

}

}

//输出

for(i=0;i<=n;i++)

{

printf("%d ",seq[i]);

}

printf("\n");

return 0;

}

后记:如果x的大小位于顺序表中间时,在寻找x位置时,判断条件为 (x>seq[k]&&x<=seq[k+1])

你可能感兴趣的:(【数据结构】noj001 顺序表的插入)