c 链表冒泡排序找错

2022-09-24 23:26

2个回答
p->next = head; 和 head = p->next; 这样子head指向了自己
struct student *pai(struct student *head)
{
struct student *ptemp,*pPre,*pCurr,*pLastCur;
ptemp = NULL
pCurr = NULL;
pPre = NULL;
pLastCur = head;

while(pLastCur->next != NULL)
{
pCurr = pLastCur;
if(pPre == NULL)
{
if(pCurr->num > pCurr->next->num)
{
pTemp = pCur->next;
pCurr -> next = pCur->next->next;
head = pTemp;
pPre = pTemp;
pTemp->next = PCur;
}
}
while(pCurr ->next != NULLL)
{
if(pCurr->num > pCurr->next->num)
{
//交换指针
pPre->next = pCur->next;
pTemp = pCur->next;
pCur->next = pCur->next->next;
pTemp->next = PCur;
pPre = pCur;
}
else
{
pCur = pCur -> next;
Pre = pCur;
}
}
pPre = pLastCur;
pLastCur = pLastCur->next;
}
return head;
}
对着你的 我改了改· 你看看有错没 我没试。
相关问答
c 语言链表冒泡排序,出错了,求原因
2个回答2023-01-07 23:06
你这个冒泡只虽然是两次循环,但做的工作还是只有一次循环交换; 因为你的循环中,外层执行一次后,你的指针就已经指向尾部了(下次循环时,指针并没有重新指向头)。此时,如果你循环里有判断尾结点了tail->...
全文
【求解】链表冒泡排序,三个节点以上就错了
1个回答2022-06-21 14:02
mm要不我给你重写一个得了。。
单链表的冒泡排序!!求解答!!
1个回答2022-12-25 06:15
{ int value; Node* next; };void Sort(Node* head) { Node* tail = NULL; while(tail != head->next) ...
全文
关于冒泡法链表排序
2个回答2022-09-16 15:25
P 指向 的是没有交换前的 最后个节点 有可能和 倒数第二个 交换 所以p不一定是最后一个节点
什么叫冒泡排序
5个回答2022-09-26 22:07
举个例子: 比如说有一组数组:1,6,3,9,7,4 想要给它做排序,把这个数组从小到大的排列 这里就可以使用冒泡算法(就像河里的泡向上冒,小的泡会在大的泡的上面一样) 这里冒泡排序就是小的数字一个...
全文
你真厉害,
1个回答2024-06-14 06:36
不要指望简单的某个事情就能达到目的,这不现实,还是从心理上关心她吧,让她感知到你的存在,对她是一种莫名的依靠
歌词里有“追呀追,飞呀飞”这首歌名叫啥?
1个回答2024-06-14 06:34
《黄昏晓》 歌手:王心凌 *有人说 天刚要黑的时候* *在天边 出现的第一颗星星* *它叫做 黄昏晓* 风吹呀吹 吹呀吹 吹在黄昏的空中 我飘呀飘 飘呀飘 飘不进你的心中 问一问风怎么说 也不能解...
全文
汽车模型
1个回答2024-06-14 06:32
这需要看你的汽车模型。因为,这里面牵扯的因素比较多。 手工是一个因素。当然也要看手工的好坏。 限量是一个因素。但也要看限量的多少。 品牌是一个因素。品牌就是钱啊。 品相是一个因素。还应该有原始...
全文
大兔子大肚子绕口令
1个回答2024-06-14 06:32
大兔子大肚子绕口令具体内容如下:大兔子,大肚子,大肚子的大兔子,要咬大兔子的大肚子。                                     和大兔子大肚子相似的绕口令还有孩...
全文
扫码下载APP
听书听课听播客,随时随地陪伴你
热门问答