1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 航班信息的查询与检索Java 航班信息的查询与检索

航班信息的查询与检索Java 航班信息的查询与检索

时间:2023-05-03 17:12:54

相关推荐

航班信息的查询与检索Java 航班信息的查询与检索

这是本人在网上下载的。。给大家分享

#include

#include

#include

#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

{

f[j]=0;

e[j]=0;

}

for(p=s1[0].next;p;p=s1[p].next)

{

j=s1[p].keys[i]%48; /*将数字字符转换成对应的数值性数字*/

if(!f[j]) f[j]=p;

else s1[e[j]].next=p;

e[j]=p; /*将p指向的结点插入到第j个结点*/

}

}

/*本算法是按关键字keys[i]从小到大将[0…radix]所指的各子表依次链接成一个链表*/

void Collect(SLNode *s1,ArrType_n f,ArrType_n e)

{

int j,t;

for(j=0;!f[j];j++); /*找到第一个非空子表*/

s1[0].next=f[j]; /*sl[0].next指向第一个非空子表中的一个结点*/

t=e[j];

while(j

{

for(j=j+1;j

if(f[j]) /*连接两个非空字表*/

{

s1[t].next=f[j];

t=e[j];

}

}

s1[t].next=0; /*t指向最后一个非空子表*/

}

void Distribute_c(SLNode *s1,int i,ArrType_c f,ArrType_c e)

{

int j,p;

for(j=0;j

{

f[j]=0;

e[j]=0;

}

for(p=s1[0].next;p!=0;p=s1[p].next)

{

j=s1[p].keys[i]%65;

if(!f[j]) f[j]=p;

else s1[e[j]].next=p;

e[j]=p;

}

}

void Collect_c(SLNode *s1,ArrType_c f,ArrType_c e)

{

int j,t;

for(j=0;!f[j];j++);

s1[0].next=f[j];

t=e[j];

while(j

{

for(j=j+1;j

if(f[j])

{

s1[t].next=f[j];

t=e[j];

}

}

s1[t].next=0;

}

/*本算法是按关键字从低位到高位依次对个关键字进行分配和收集,分两

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。