我是一个新手,希望高手指点!
最好是完整的程序,链表首先要排序,再倒置~~谢谢了!
下面是我的排序求最小值的程序,看看能改吗?
#include<stdio.h>
#include<stdlib.h>
#define NULL 0
#define MAXNUM 100
#define FALSE 0
#define TRUE 1
#define R 100
#define YSGS 20
struct Node
typedef struct Node *PNode;
struct Node
{
DataType info;
PNode link;
};
typedef struct Node *LinkList;
LinkList createNullList_link(void)
{
LinkList llist=(LinkList)malloc(sizeof(struct Node));
if(llist!=NULL)
llist->link=NULL;
else
printf("\nOut of space!\n");
return(llist);
}
int isNullList_link(LinkList llist)
{
return(llist->link==NULL);
}
PNode locate_link(LinkList llist,DataType x)
{
PNode p;
if(llist==NULL)return(NULL);
p=llist->link;
while(p!=NULL && p->info!=x)p=p->link;
return(p);
}
int inserPost_link(LinkList llist,PNode p,DataType x)
{
PNode q=(PNode)malloc(sizeof(struct Node));
if(q==NULL)
{printf("\nOut of space!!!\n");
return(0);
}
else
{
q->info=x;q->link=p->link;p->link=q;return(1);
}
}
main()
{
int i,min,mini;
LinkList p1;
p1=createNullList_link();
randomize();
clrscr();
printf("\n\n");
for(i=0;i<YSGS;i++)
insert_link(p1,i,random(R));
print_link(p1);
min=p1->element[0];
mini=0;
for(i=1;i<p1->n;i++)
if(min>p1->element[i])
{min=p1->element[i];
mini=i;
}
printf("\n\nmin=%d num=%d",min,mini+1);
}