数据结构课程设计报告 第 4 页,共 页
1.Void Distribute(RecordType r[],int i,pvector head,pvector tail)
记录 数组 r 中已按低位关键字 key[i+1],…,key[d]进行低位优先排序,本算法 按第 i 个
关键字 key[i]建立 10 个队列,同一个队列中记录的 key[i]相同。Head[j]和 tail[j]分别指向
各自队列中第一个和最后一个记录(j=0,1,2,…9).head[j]=0 表示相应队列为空队列。
2.Void collect(RecordType r[],pvctor head,pvctor tail)
本算法从 0 到 9 扫描个队列将所有非空队列首尾相接,重新链接成一个链表。
3.Void RadixSort(Record r[],int length)
Length 个记录存放在数组 r 中,执行本算法进行基数排序后,链表中的记录将按关键字
从小到大的顺序链接。
5. void arrange(SLinkList *l)
对静态表进行整序
6.int search_bin(SLList l,char key[])
二分查找
7. void GetData(SLinkList *L)
从键盘获得数据。
8. void SLListTraverse(SLinkList *L)
遍历静态表
9. int Equal(char key1[],char key2[])
判断相等
10. int Little(char key1[],char key2[])
判断较小
模块之间调用关系
主函数调,(3,5),6,7,8
3 调用 1,2
6 调用 9,10
三 详细设计
主要函数
void Distribute_n(RecordType r[],int i,shuzi head,shuzi tail) //数字分配
{
int j,p;
for(j=0;j<=队列的个数;j++) //初始化队列
{
队列的头指针=0;全部为 0
对列的尾指针=0;全部为 0
}
p=第一个数据在数组中的位置
while(第一个数据在数组中的位置!=0)
{
j=第一个数据的第 i 位在第几个队列