资源简介
课程设计的一部分代码,希望能对大学生们做课设计有作用。
代码片段和文件信息
/*【5.5】汽车牌照管理系统
[ 问题描述 ]
排序和查找是在数据处理中使用频度极高的操作,为加快查找的速度需现对数据记录按关键字
排序。在汽车数据的信息模型中,汽车牌照是关键字,而且是具有结构特点的一类关键字,因
为汽车牌照号是数字和字母混编的,例如01B7328,这种记录集合是一个适于利用多关键字进行
排序的典型例子。
[ 基本要求 ]
(1)首先利用链式基数排序方法实现排序,然后利用折半查找方法,实现对汽车记录按关键字
进行查找。
(2)汽车记录集合可以人工录入,也可以按自动方式随机生成。 */
#include
#define RADIX 10
#define DEY_SIZE 6
#define LIST_SIZE 20
typedef int KeyType;
typedef struct
{
KeyType key[KEY_SIZE];
OtherType other_data;
int next;
}RecordTypel;
typedef struct
{
RecordTypel r[LIST_SIZE+1];
int length;
int keynum;
}SlinkList;
typedef int PVector[RADIX];
void Distribute( RecordTypel r[] int i PVector head PVector tail)
{
for( int j=0;j<=RADIX-1;++j)
head[j]=0;
p=r[0].next;
while(p!=0)
{
j=Order();
if(head[j]==0)
head[j]=p;
else
r[tail[j]].next=p;
tail[j]=p;
p=r[p].next;
}
}
void Collect ( RecordTypel r[] int i PVector head PVector tail)
{
j=0;
while(head[j]==0)
++j;
r[0].next=head[j];
t=tail[j];
while(j {
++j;
while( (j ++j;
if(head[j]!=0)
{
r[t].next=head[j];
t=tail[j];
}
}
r[t].next=0;
}
void RadixSort (RecordType r[]int length)
{
n=length;
for(i=0;i<=n-1;++i)
r[i].next=i+1;
r[n].next=0;
d=keynum;
for(i=d-1; i>=0; --1)
{
Distribute(riheadtail);
Collect(rheadtail);
}
}
void BinSrch(SpList l KeyType k)/*折半查找*/
{
low=1;high=;
while(low<=high)
{
mid=(low+high)/2;
if(k==l.r[mid].key)
return mid;
else if(k high=mid-1;
else
low=mid+1;
}
}
int main()
{
RadixSort();
return 0;
}
/* head=NULL; 链表的存储方式 读入方式可以采取头插法建立链表的方法来对每个文件进行读取。多插法的具体操作
p=(Rnode*)malloc(sizeof(Rnode));
p->next=NULL;
while( fscanf(f1“%s%s“p->keyp->name)!=EOF)
{
if(head==NULL) l=head=p;
else
{
l->next=p;
l=p;
}
p=(Rnode*)malloc(sizeof(Rnode));
p->next=NULL;
}
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2250 2013-12-24 10:59 1.cpp
----------- --------- ---------- ----- ----
2250 1
评论
共有 条评论