补充完成下面的 insert 函数,向一个非递减链表中插入一个数,插入后仍按非递减顺序排列
#include<stdio.h>
#include<stdlib.h>
struct node
{
int x;
struct node *next;
};
void insert(struct node *H,int p)
{//H带有头结点。头结点后面的结点是第一个数据结点
}
void print(struct node *H)
{
struct node *p;
p=H->next;
while(p!=0)
{
printf("%d ",p->x);
p=p->next;
}
}
void freeheadlist(struct node *h)
{
struct node *t;
h=h->next;
while(h)
{
t=h->next;
free(h);
h=t;
}
}
int main()
{
struct node H,*t,*tail;
int x;
int i;
int p;
H.next=0;
tail=&H;
for(i=1;i<=4;i++)
{
scanf("%d",&x);
t=(struct node*)malloc(sizeof(struct node));
t->x=x;
t->next=0;
tail->next=t;
tail=t;
}
scanf("%d",&p);
insert(&H,p);
print(&H);
freeheadlist(&H);
return 0;
}