有一顺序表List,表中的元素值递增有序,现要求将给定值插入该顺序表中,同时保持顺序表的递增有序性。插入完成后,输出新表的内容。(假设无表满和重复值情况)
输入格式:
有多组数据,每组数据占两行。 每组第一行有两个整数,第一个为表长n(0<n<50),第二个为值x; 第二行为表的各元素值。
输出格式:
每组数据的输出占一行,具体输出如题。每两个元素之间有一空格。
输入样例:
在这里给出一组输入。例如:
5 4
1 3 5 7 9
输出样例:
在这里给出相应的输出。例如:
1 3 4 5 7 9
#include<iostream>
using namespace std;
#define N 50
typedef struct{
int *elem;
int length;
}LinkList,*LNode;
int main()
{
LinkList L;
int n,x,i,j;
L.elem=new int[N];
while(cin>>n>>x){
for(i=0;i<n;i++){
cin>>L.elem[i];
}
L.length=n;
for(i=0;i<n;i++){
if(x<L.elem[i]){
break;
}
}
for(j=n-1;j>=i;j--){
L.elem[j+1]=L.elem[j];
}
L.elem[i]=x;
L.length=L.length+1;
for(i=0;i<n+1;i++){
if(i==n){
cout<<L.elem[i]<<endl;
}
else{
cout<<L.elem[i]<<" ";
}
}
}
}