我写的链表排序函数可是总是不行头都大了阿

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:35:04
/*排序函数*/
student *sort(student *head)
{
int i=0; /*保存名次*/
student *p1,*p2,*t,*temp; /*定义临时指针*/
temp=head->next; /*将原表的头指针所指的下一个结点作头指针*/
head->next=NULL; /*第一个结点为新表的头结点*/
while(temp!=NULL) /*当原表不为空时,进行排序*/
{
t=temp; /*取原表的头结点*/
temp=temp->next; /*原表头结点指针后移*/
p1=head; /*设定移动指针p1,从头指针开始*/
p2=head; /*设定移动指针p2做为p1的前驱,初值为头指针*/
while((t->score<p1->score) && (p1!=NULL)) /*作成绩平均分比较*/
{
p2=p1; /*待排序点值小,则新表指针后移*/
p1=p1->next;
}
if(p1==p2) /*p1==p2,说明待排序点值大,应排在首位*/
{
t->next=p1; /*待排序点的后继为p*/
head=t; /*新头结点为待排序点*/
}
else /*待排序点应插入在中间某个位置p2和p1之间,如p为空则是尾部*/
{
t->next=p1; /*t的后继是p1*/
p2->next=t;

if(p1==p2) /*p1==p2,说明待排序点值大,应排在首位*/
这句比较的只是内存地址的大小,不知你的原意为何?并没比较成员值的大小。而且在C语言中地址大小的比较是没有意义的

注意你的空格和循环

我写了一个冒泡排序; 想单独把实现冒泡功能的函数放在另一个.cpp文件中, 可是在调用时却报错, 请高手指教/ 写了一个链表逆置的函数,好象不行,帮忙看看 我用迅雷,可是下载的时候总是要点右键才能下载,直接点击不行,拖拽也不行 我用的杀毒软件卡巴斯基总是弹出:发现威胁,可是,怎么也不行呀? 几串string串按他们的长度排序,如果长度相等按他们字典序排序,这个问题的bool排序函数怎么写 c语言用指针写选择法排序函数 怎样用数组指针做参数来写一个排序函数? 我知道这样是不行的,可是???? 我的 xp上网的时候 总是 出来一些 垃圾网站 我也杀过毒了可是不行 请问excel里有没排序的函数?