代码:
#include <stdio.h>
#include <malloc.h>
//对单链表使用冒泡排序
typedef struct node{
int data;
struct node *next;
int sort_flag;//标志链表中当前结点是否被排过序
}Node, *Linklist;
#define sorted 1
#define unsorted 0
//打印并销毁一个链表
void print_Linklist(Linklist h)
{
if(h == NULL){
return;
}
Linklist pre = h;
Linklist next = h->next;
while(next){
printf("%d\n",next->data);
free(pre);
pre = next;
next = next->next;
}
free(pre);
}
// 单链表的冒泡排序:前后两个结点的值交换,非指针操作
void bubble_sort(Linklist h)
{
if(h->next==NULL && h->next->next==NULL){
return;
}
Linklist pre = h->next;
Linklist next = h->next->next;
int num = 2;
while(next){//第一次冒泡排序,并确定元素个数num
++num;
if(pre->data > next->data){//值交换,非指针操作
int tmp = next->data;
next->data = pre->data;
pre-&

这篇博客介绍了如何使用冒泡排序算法对单链表进行排序。通过代码展示详细步骤,最终展示了排序后的链表元素:2, 7, 8, 34, 51。"
86539550,7479352,寻找质数和的最大乘积算法解析,"['算法', '数学', '质数', '编程竞赛', '优化']
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



