刚学习<数据结构>,这道题做了一天了!!!!1
原题:将一个无序的线性表A={11,16,8,5,14,10,38,32)换成一个升序排列的线性链表.
#include <malloc.h>
#include <stdio.h>
#define NULL 0
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
LinkList creat()
{
struct LNode *head,*p,*q;int m;
m=0;
q=p=(LinkList*)malloc(sizeof(LNode));
head=NULL;
scanf("%d",&p->data);
while(p->data!='\n')
{
m=m+1;
if(m==1)head=p;
else q->next=p;
q=p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
}
q->next=NULL;
return(head);
}
struct LNode mpsort(int n,LNode head)
{
int i,j,k;
char *q,*p;
for(i=1;i<n;i++)
for(k=1;k<=n-i;k++)
{
if(p->data>p->next->data)
{q=p->next;p=q;p->next=q->net->data;
}
for (j=1;j<=n;j++)
printf("%d",p);
}
}
main()
{
struct LNode *head,*p;
int n;n=8;
printf("input the numbers:\n"};
head=creat();
printf("排序后为 :\n");
L=mpsort(A,n);
}