计算机等级考试C语言程序设计例解(01)
01.试着根据下面给出的基数排序算法的思想,为整数链表写一个排序函数
解:
基数排序就是按表元素键值的每一位值进行排序。
有一个整数链表,表元素的键值都是不超过三位的整数。建议设置ABC形式的键值。其中A代表键值的百位数,B是十位数,C是个位数。首先,键值C拆分并链接链表。首先将链表拆分成多达10个队列链表,然后将拆分后的10个队列链表按照C的值从0到9的顺序汇集成一个链表。然后依次对键值中的B和A进行同样的拆分和链接操作,最后收集的链表按键值从小到大排序链接。例如,如果有一个链表,其元素根据键值的链接顺序是
153 678 56 288 457 653 721 876 433 254
根据键值拆分得到十个队列链表,它们的键值按以下顺序列出:
0:空链表
1: 721
2:空链表[/k0/]7:457
8:678 288
9:空链表
它们收集在一起后,链表的键值顺序是:
721 153 653 433 254 56 876 457 678 288[它们的键值按以下顺序排列:
0:空链表
1:空
然后,根据它们的数百个键值,得到十个队列链表。列出的键值有:
0:56
1:153
2:254 288
3:空链表
4: 433 457
5。8: 876
9:空链表
它们收集在一起后,链表的键值顺序是:
56 153 254 288 433 457 653 678 721 876
这是一个键值由小到大链接的链表。
0条评论