c语言单链表节点排序

需求:

c语言中的链表节点排序,然后查过网上一些源码,有很多就没有实现这个功能,有的只是单个数据修改而已,所以刚巧从书中找到一个案例,就分享一波

源码:
void sort(Stu head){
	Stu p,q,r,t;
	int flag = 1;
	while(flag){
		p = head;
		q = head->next;
		flag = 0;
		while(q != NULL){
			r = q->next;
			if(r == NULL){
				break;
			}else if(q->svgNum < r->svgNum){
				t = r->next;
				q->next = t;
				r->next = q;
				p->next = r;
				p = r;
				q = p->next;
				r = q->next;
				flag = 1;
			}else{
				p = q;
				q = p->next;
			}
		}
	}
}
备注:

结构体:
typedef struct Student{
char sid[10]; //学号
char name[10]; //名字
float mathNum;
float engNum;
float svgNum;
Student * next;
}*Stu;

你可能感兴趣的:(c语言,数据结构)