#include<stdio.h>
#include<malloc.h>
typedef int elemtype;
typedef struct node
{
elemtype data;
struct node *next;
}linklist;
linklist *creatlist(int n)
/*创建链表*/
{
int x,k;
linklist *head,*r,*p;
p=(linklist *)malloc(sizeof(linklist));
head=p;
p->next=NULL;
r=p;
for(k=1;k<=n;k++)
{
printf("官员大小x=");
scanf("%d",&x);
p=(linklist *)malloc(sizeof(linklist));
p->data=x;
p->next=NULL;
r->next=p;
r=r->next;
}
return head;
}
linklist *insert(linklist *head,int n)
/*插入*/
{
linklist *p,*q;;
p->next=head->next;
while(p->next)
{
p=p->next;
}
q=(linklist *)malloc(sizeof(linklist));
q->data=n;
q->next=NULL;
p->next=q;
return head;
}
linklist *compo(linklist *head)
/*从小到大排序*/
{
int i,j,t;
linklist *p,*r;
p=head->next;
while(p)
{
j=p->data;
r=p->next;
while(r)
{
if(r->data<j)
{
t=r->data;
r->data=j;
j=t;
}
r=r->next;
}
p->data=j;
p=p->next;
}
return head;
}
void main()
{
linklist *head,*p,a;
int n,i,m;
printf("请输入官员的个数:n=");
scanf("%d",&n);
head=&a;
printf("请依次输入每一个官员的大小\n");
head=creatlist(n);
head=compo(head);
/*排序*/
p=head->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
printf(" 请输入王者的个数:n=");
scanf("%d",&n);
printf("请依次输入每一个王者的大小\n");
for(i=1;i<=n;i++)
{
printf("请输入王者的大小 m=");
scanf("%d",&m);
head=insert(head,m);
}
head=compo(head);
/*排序*/
printf("最终排序 :\n");
p=head->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
getch();
return 0;
}