#include<iostream>
using namespace std;
typedef int datatype;
typedef struct node
{
datatype data;
struct node *next;
}linklist;
linklist *creat()
{
int ch;
linklist *head,*s,*r;
head=(linklist *)malloc(sizeof(linklist));
r=head;
cin>>ch;
while(ch!=0)
{
s=(linklist *)malloc(sizeof(linklist));
s->data=ch;
r->next=s;
r=s;
cin>>ch;
}
r->next=NULL;
return head;
} //定义链表
linklist *insert(linklist *head,int x)
{
linklist *p;
linklist *s;
s=(linklist *)malloc(sizeof(linklist));
s->data=x;
p=head->next;
if(s->data<=p->data)
{s->next=p;
head->next=s;
return head;}
while(p->next!=NULL)
{
if(s->data>=p->data&&s->data<=p->next->data)
{s->next=p->next;
p->next=s;
return head;}
else p=p->next;
}
p->next=s;
s->next=NULL;
return head;
} //插入字符
void print(linklist *head)
{
linklist *p;
p=head->next;
cout<<"these numbers are:"<<endl;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
}
//输入
void main()
{
datatype x;
linklist *p,*h;
cout<<"creat your numbers:"<<endl;
h=creat();
cout<<"input an x";
cin>>x;
p=insert(h,x);
print(p);
}
//输出