求教:带头结点的单循环链表如何进行排序?
本人初学C语言不久,今天找了一道数据结构的考研题
题目大致是这样的,要对仓库里货物建立一个带头结点的单循环链表,要求按价格从低到高排序,还可以进行插入,删除,查找等操作
typedef struct list{
float price;
int num;
struct list *next;
}Linklist;
现在功能已经基本可以实现了,就是这个按价格排序的函数写不出来。。百度,google,翻书什么的都用了,查到的方法可以编译但是运行不出结果,就是运行程序的那个窗口定住不动
已经折腾半下午加一晚上了。。
请各位高人教教我
[解决办法]
void sort_L(Linklist *L) { Linklist *p,*q,*min; float price; int num; for(p=L->next;p->next!=NULL;p=p->next) { min=p; for(q=p->next;q;q=q->next) if(q->price<min->price) min=q; if(small!=p) { price=p->price; num=p->num; p->price=min->price; p->num=min->num; min->price=price; min->num=num; } }}