#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}linklist;
linklist *createList(){
linklist *head,*p,*q;
int x;
scanf("%d",&x);
p=(linklist *)malloc(sizeof(linklist));
p->data=x;
head=p;
scanf("%d",&x);
while (x!=-1){
q=(linklist *)malloc(sizeof(linklist));
q->data=x;
p->next=q;
p=q;
scanf("%d",&x);
}
p->next=NULL;
return head;
}
linklist *insertList(int n,linklist *head){
linklist *p,*q,*s;
s=(linklist *)malloc(sizeof(linklist));
s->data=n;s->next=NULL;
if (head==NULL) return p;
p=q=head;
while (q!=NULL && q->data < n){
p=q;q=q->next;
}
if (p==head){
s->next=p;head=s;//在头部插入
}
else{
s->next=q;p->next=s;
}
return head;
}
void printList(linklist *head){
linklist *t;
t=head;
if (t==NULL)
printf("这是一个空列表\n");
while (t!=NULL){
printf("%d ",t->data);
t=t->next;
}
printf("\n");
}
int main()
{
linklist *head;
int n;
printf("请输入一组递增数,以-1结束\n");
head=createList();
printList(head);
printf("请输入要插入的数\n");
scanf("%d",&n);
head=insertList(n,head);
printList(head);
system("pause");
return 0;
}