gpt4 book ai didi

c - 链表:冒泡排序指针(C)

转载 作者:太空狗 更新时间:2023-10-29 15:30:13 25 4
gpt4 key购买 nike

<分区>

我正在完成一项大学作业。我正在尝试用 C 编写一个链表排序。我不允许交换值 - 只能交换指针。

这是我的排序函数:

struct node *sort_list(struct node *head) {

bool swapped ;
struct node *cur = head, *first ;

if ( head == NULL || head->next == NULL ) return head ;
else {
do {
swapped = false ;
while ( cur != NULL && cur->next != NULL ){
if (cur->value > cur->next->value){
cur = swap_with_next( cur ) ;
swapped = true ;
}
cur = cur->next ;
}
} while (swapped == true) ;

}
return head ;

}

交换函数:

 struct node *swap_with_next(struct node *n) {
struct node *tmp ;
tmp = n ;
n = n->next ;
tmp->next = n->next ;
n->next = tmp ;
return n ;
}

问题:输出不正确:

input:  5->2->NULL
output: 5->NULL

input: 9->1->5->2->8->3
output: 9->5->8

如有任何帮助,我们将不胜感激!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com