这是洛谷上的数列有序的题,我的代码有问题,请帮我改正并解释一下,谢谢
#include <bits/stdc++.h>
using namespace std;
const int Nmax=107;
struct Node{
int data;
int nxt;
}node[Nmax];
int size;
int head;
int main(){
while(cin>>n>>m){
if(!n&&!m){
break;
}
int now=head;
for(int i=0;i<n;i++){
cin>>x;
node[node[now].nxt]now.nx=++size;
node[now.nx].data=x;
node[now.nx].nxt=-1;
}
now=head;
while(now!=-1){
if(m>node[now].data){
++size;
node[size].data=m;
node[size].nxt=size;
break;
}
++size;
node[size].data=m;
node[size].nxt=head;
head=size;
now=heas;
while(now!=-1){
if(now.nx==-1)
cout<<node[now].data<<"\n";
else
cout<<node[now].data<<" ";
if(now.nx!=-1)
now=node[now.nx];
}
}
}