基数排序单链表实现(C语言)

头文件:

/*基数排序,单链表实现*/
#ifndef RADIX_SORT_H
#define RADIX_SORT_H

#include <stdbool.h>
#define FLOWOVER -1
#define LIST_EMPTY -2

struct RadixSort;
typedef struct RadixSort * List;
typedef struct RadixSort * Node;
typedef int Element;

struct RadixSort
{
	Element elem;
	Node next;
};

List CreateList(void);//创建空表,返回表头地址
bool IsLast(Node N);//检测输入节点是否为表尾,是返回true  
bool IsEmpty(List L);//检测输入表是否为空,是返回true 
List DestroyList(List L);//删除表并释放内存 
void AddNode(List L, Element e);//在表尾加入数据域为e的节点
void MoveNode(List L1, List L2);//将表L2中的头节点移动成为L1的尾节点 
void PrintList(List L);//从第一个节点开始输出表中数据 

#endif

实现文件:

#include <stdlib.h>
#include <malloc.h>
#include <stdio.h>
#include "radix_sort.h"

List CreateList(voi
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用冒泡排序算法对单链表进行排序的C语言代码: ```c #include <stdio.h> #include <stdlib.h> // 定义单链表结构体 typedef struct node { int data; struct node *next; } Node; // 冒泡排序函数 void bubble_sort(Node *head) { Node *p, *q, *tail = NULL; int exchange = 1; while (exchange && head->next != tail) { exchange = 0; p = head; q = p->next; while (q != tail) { if (p->data > q->data) { int tmp = p->data; p->data = q->data; q->data = tmp; exchange = 1; } p = p->next; q = q->next; } tail = p; } } // 创建单链表函数 Node *create_list(int n) { Node *head = NULL, *tail = NULL, *p; int i, x; for (i = 1; i <= n; i++) { printf("请输入第%d个节点的值:", i); scanf("%d", &x); p = (Node *)malloc(sizeof(Node)); p->data = x; p->next = NULL; if (head == NULL) { head = p; } else { tail->next = p; } tail = p; } return head; } // 输出单链表函数 void print_list(Node *head) { Node *p = head; while (p != NULL) { printf("%d ", p->data); p = p->next; } } // 主函数 int main() { int n; Node *head; printf("请输入节点个数:"); scanf("%d", &n); head = create_list(n); printf("排序前的单链表为:"); print_list(head); bubble_sort(head); printf("\n排序后的单链表为:"); print_list(head); return 0; } ``` 其中,`bubble_sort()` 函数使用冒泡排序算法对单链表进行排序。`create_list()` 函数用于创建包含 `n` 个节点的单链表,并返回头结点指针。`print_list()` 函数用于输出单链表中的所有节点值。在 `main()` 函数中,先调用 `create_list()` 函数创建单链表,然后输出排序前的单链表,调用 `bubble_sort()` 函数进行排序,最后输出排序后的单链表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值