//实现基数排序算法#include<stdio.h>
#include<malloc.h>
#include<string.h>#define MAXE 20  //线性表中最多元素个数
#define MAXR 10  //基数的最大取值
#define MAXD 8  //关键字位数的最大值typedef struct node //记录类型
{char data[MAXD];//记录的关键字定义的字符串struct node *next;   //其他数据项,类型为InfoType
}RecType;void CreaLink(RecType *&p,char *a[],int n);void DispLink(RecType *p);void RadixSort(RecType *&p,int r,int d)// 实现基数排序:*p为待排序序列链表指针,r为基数,d为关键字位数
{RecType *head[MAXR],*tail[MAXR],*t;//定义各链表的首尾指针int i,j,k;for(i=d-1;i>=0;i--)//从低位到高位循环{for(j=0;j<r;j++)//初始化各链队首、尾指针head[j]=tail[j]=NULL;while(p!=NULL)//对于原链表中每个结点循环{k=p->data[i]-'0';//找到第K个链队if(head[k]==NULL)//进行分配{head[k]=p;tail[k]=p;}else{tail[k]->next=p;tail[k]=p;}p=p->next;//取下一个待排序的元素}p=NULL;for(j=0;j<r;j++)//对于每一个链队循环if(head[j]!=NULL)//进行收集{if(p==NULL){p=head[j];t=tail[j];}else {t->next=head[j];t=tail[j];}}t->next=NULL;//最后一个结点的next域置NULLprintf("   按%d位排序:",d-i-1);DispLink(p);}
}void CreaLink(RecType *&p,char *a[],int n)//采用后插法产生链表
{int i;RecType *s,*t;for(i=0;i<n;i++){s=(RecType *)malloc(sizeof(RecType));strcpy(s->data,a[i]);if(i==0){p=s;t=s;}else{t->next=s;t=s;}}t->next=NULL;
}void DispLink(RecType *p)//输出链表
{while(p!=NULL){printf("  %s",p->data);p=p->next;}printf("\n");
}int main()
{int n=8;char * a[]={"75","23","98","44","57","12","29","64","38","82"};RecType *p;CreaLink(p,a,n);printf("\n");printf("初始化关键字:");DispLink(p);RadixSort(p,10,2);printf("    最终结果:");DispLink(p);printf("\n\n");return 0;
}

数据结构源码笔记(C语言描述)汇总:

数据结构源码笔记(C语言):英文单词按字典序排序的基数排序

数据结构源码笔记(C语言):直接插入排序

数据结构源码笔记(C语言):直接选择排序

数据结构源码笔记(C语言):置换-选择算法

数据结构源码笔记(C语言):Huffman树字符编码

数据结构源码笔记(C语言):Josephus问题之顺序表

数据结构源码笔记(C语言):Josephus问题之循环链接表

数据结构源码笔记(C语言):多项式合并

数据结构源码笔记(C语言):二叉树之叶子结点旋转销毁

数据结构源码笔记(C语言):哈夫曼树

数据结构源码笔记(C语言):集合的位向量表示

数据结构源码笔记(C语言):链接队列

数据结构源码笔记(C语言):链接栈

数据结构源码笔记(C语言):线性表的单链表示

数据结构源码笔记(C语言):线性表的顺序表示

数据结构源码笔记(C语言):栈的基本操作

数据结构源码笔记(C语言):中缀表达式

数据结构源码笔记(C语言):希尔插入排序

数据结构源码笔记(C语言):索引文件建立和查找

数据结构源码笔记(C语言):冒泡排序

数据结构源码笔记(C语言):快速排序

数据结构源码笔记(C语言):可变长度字符串的快速排序

数据结构源码笔记(C语言):基数排序

数据结构源码笔记(C语言):二路归并排序

数据结构源码笔记(C语言):堆排序

数据结构源码笔记(C语言):二叉树搜索树Kruskal

数据结构源码笔记(C语言):二叉搜索树Prim

数据结构源码笔记(C语言):最短路径弗洛伊德算法

数据结构源码笔记(C语言):深度、广度优先生成树

数据结构源码笔记(C语言):邻接矩阵转化邻接表

数据结构源码笔记(C语言):统计字符串中出现的字符及其次数

数据结构源码笔记(C语言):顺序查找

数据结构源码笔记(C语言):哈希表的相关运算算法

数据结构源码笔记(C语言):分块法查找

数据结构源码笔记(C语言):二分查找

数据结构源码笔记(C语言):二叉树遍历

数据结构源码笔记(C语言):二叉平衡树的相关操作算法

数据结构源码笔记(C语言):二叉排序树的基本操作算法

数据结构源码笔记(C语言):B树的相关运算算法

数据结构源码笔记(C语言):基数排序相关推荐

  1. 数据结构源码笔记(C语言):英文单词按字典序排序的基数排序

    //实现英文单词按字典序排序的基数排序算法#include<stdio.h> #include<malloc.h> #include<string.h>#defin ...

  2. 数据结构源码笔记(C语言描述)汇总

    数据结构源码笔记(C语言):英文单词按字典序排序的基数排序 数据结构源码笔记(C语言):直接插入排序 数据结构源码笔记(C语言):直接选择排序 数据结构源码笔记(C语言):置换-选择算法 数据结构源码 ...

  3. 数据结构源码笔记(C语言):索引文件建立和查找

    //实现索引文件建立和查找算法#include<stdio.h> #include<malloc.h> #include<string.h> #include< ...

  4. 数据结构源码笔记(C语言):快速排序

    //实现快速排序算法 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; type ...

  5. 数据结构源码笔记(C语言):冒泡排序

    //冒泡排序算法实现 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; type ...

  6. 数据结构源码笔记(C语言):希尔插入排序

    //实现希尔插入排序算法 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; ty ...

  7. 数据结构源码笔记(C语言):直接插入排序

    //实现直接插入排序算法#include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; typ ...

  8. 数据结构源码笔记(C语言):直接选择排序

    //实现直接选择排序算法#include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; typ ...

  9. 数据结构源码笔记(C语言):置换-选择算法

    //实现置换-选择算法#include<stdio.h> #include<malloc.h> #include<string.h> #include<std ...

最新文章

  1. HDU 1166 敌兵布阵
  2. Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介、实现、应用
  3. 单片机成长之路(51基础篇) - 022 N76e003 APROM模拟EEPROM驱动
  4. 面试中经常会问的智力题,来看看你会做几道
  5. mac mongodb可视化工具_MongoDB从立地到成佛(介绍、安装、增删改查)
  6. Signal处理中的函数可重入问题
  7. 关于左移右移的操作 学习
  8. oracle三大索引类型
  9. 禁忌搜索算法TS求解连续函数最值
  10. CIF,4CIF,QCIF,D1
  11. k-anonimity、l-diversity 和 t-closeness
  12. python读csv文件中文乱码问题简单解决(附python遍历目录下csv文件并输出内容的代码)
  13. c语言中TR1=1什么意思,c – 如何在Visual Studio 2010(tr1 :: function)中使用tr1?
  14. 始料未及-- 元宇宙传来好消息,全球轰动
  15. 5月6日----5月9日一年级课程表
  16. linux自动生成证书,Linux生成TLS证书
  17. 轻松无广告:推荐一款高效提醒软件
  18. WPS中插入图像的剪切方法(转)
  19. onchange事件的触发
  20. 用友华表Cell一些用法小结(cs.net版本)

热门文章

  1. eplan增加其他到工具栏_EPLAN增效之工具栏定制(十三:端子排编辑不进导航器)
  2. C语言复习2_运算符
  3. Linux iptables
  4. Linux centos7 下 svn 服务器搭建
  5. Android性能优化(3)
  6. 数据结构学习-带头结点的单链表就地逆置
  7. SDN/NFV运营商商业化部署
  8. i春秋30强挑战赛pwn解题过程
  9. 网页上的静止导航脚本
  10. Training—Capturing Photos