#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define MaxSpace 100
#define keylen 6
#define RADIX_n 10
#define RADIX_c 26
typedef char KeyType;
typedef struct{
char start[8]; //起点
char end[8]; //终点
char sche[8]; //班期
char time1[6]; //起飞时间
char time2[6]; //到达时间
char model[6]; //机型
int price; //票价
}InfoType; //航班记录类型
typedef struct{
KeyType keys[keylen]; //关键字
InfoType others;
int next;
}SLNode; //表节点
typedef struct{
SLNode s1[MaxSpace]; //静态链表,是s1[0]为头结点
int keynum; //关键字长
int length; //当前表长
}SLList; //静态联表类型
typedef int ArrType_n[RADIX_n];
typedef int ArrType_c[RADIX_c];
int m=0,num=0;
/*本算法时按关键字keys[i]建立radix个子表,使同一个子表中记录的keys[i]相同,f[0…radix]
和e[0..radix]分别指向各子表,使同一个子表中的第一个和最后一个记录*/
void Distribute(SLNode *s1,int i,ArrType_n f,ArrType_n e)
{
int j,p;
for(j=0;j<RADIX_n;j++) /*各子表初始化*/
{
f[j]=0;
e[j]=0;
}
for(p=s1[0].next;p;p=s1[p].next)
{
j=s1[p].keys[i]%48;