亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sort_search.h

?? 用數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)基本算法 用C++實(shí)現(xiàn)車務(wù)管理
?? H
字號(hào):
#include "common.h"
/**********************************各種常量及類型定義***********************************/

#define MAX_NUM_OF_KEY 7				//最大關(guān)鍵字?jǐn)?shù)
#define RADIX_n 10						//十進(jìn)制整數(shù)的基數(shù)
#define RADIX_c 26						//26個(gè)字母的基數(shù)
#define MAX_SPACE 2000					//最大鏈表空間
#define LT(a,b) ((a)<(b))
#define EQ(a,b) ((a)==(b))
#define BG(a,b) ((a)>(b))
typedef char KeysType;					//關(guān)鍵字類型

typedef struct{
	char carname[15];					//車名		
	char color[10];						//顏色
	char date[10];						//購買日期
	char ownername[15];					//車主
}InfoType;								
typedef struct{
	KeysType keys[MAX_NUM_OF_KEY];		//關(guān)鍵字
	InfoType otheritems;				//其他數(shù)據(jù)項(xiàng)
	int next;							
}SLCell;
typedef struct{
	SLCell r[MAX_SPACE];				//靜態(tài)鏈表的可利用空間,r[0]為頭結(jié)點(diǎn)
	int keynum;							//記錄的當(dāng)前關(guān)鍵字個(gè)數(shù)
	int recnum;							//靜態(tài)鏈表的當(dāng)前長(zhǎng)度
}SLList;								//靜態(tài)鏈表類型	
typedef int ArrType_n[RADIX_n];			//十進(jìn)制指針數(shù)組類型
typedef int ArrType_c[RADIX_c];			//26個(gè)字母的指針數(shù)組類型

/**********************************各種函數(shù)定義*****************************************/

void InitSLList(SLList &L)				
//鏈表初始化
{
	L.recnum=0;							
	L.keynum=MAX_NUM_OF_KEY;
}//InitSLList

void GetData(SLList &L)					
//獲得數(shù)據(jù)
{
	KeysType key='0';
	int j=1;
	cout<<"please input the car number with key='#' to end"<<endl;
	cout<<"Example: 01B3456"<<endl;
	cout<<"car number=";
	for(int i=0;i<MAX_NUM_OF_KEY;i++)
	{
		cin>>key;
		if(i==2&&key>'Z') key=(char)(key-'a'+'A');
		L.r[1].keys[i]=key;
	}
	printf("carname:");
	gets(L.r[1].otheritems.carname);
	printf("color:");
	gets(L.r[1].otheritems.color);
	printf("date:");
	gets(L.r[1].otheritems.date);
	printf("ownername:");
	gets(L.r[1].otheritems.ownername);
	while(key!='#')
	{	
		j++;
		cout<<endl<<"car number=";
		for(int i=0;i<MAX_NUM_OF_KEY;i++)
		{
			cin>>key;
			if(i==2&&key>'Z') key=(char)(key-'a'+'A');
			if(key=='#') {j--;break;}
			L.r[j].keys[i]=key;
		}
		if(key=='#') break;
		printf("carname:");
		gets(L.r[j].otheritems.carname);
		printf("color:");
		gets(L.r[j].otheritems.color);
		printf("date:");
		gets(L.r[j].otheritems.date);
		printf("ownername:");
		gets(L.r[j].otheritems.ownername);
	}//while
	L.recnum=j;
}//GetData

int ord_n(KeysType key)					
//將記錄中第key個(gè)關(guān)鍵字映射到[0..RADIX_n]
{
	return ((int)(key-'0'));
}//ord_n

int ord_c(KeysType key)					
//將記錄中第key個(gè)關(guān)鍵字映射到[0..RADIX_c]
{
	return ((int)((int)key-'A'));
}//ord_c

int succ(int j)							
//求j的后繼函數(shù)
{
	return (j+1);
}//succ

void Distribute_n(SLCell* r,int i,ArrType_n &f,ArrType_n &e)
//靜態(tài)鏈表L的r域中記錄已按(keys[0],...keys[i-1])有序
//本算法按第i個(gè)關(guān)鍵字keys[i]建立RADIX_n個(gè)子表,使同一子表中記錄的keys[i]相同
//f[0..RADIX_n]和e[0..RADIX_n]分別指向各自表中的一個(gè)和最后一個(gè)記錄
{
	int j,p;
	for(j=0;j<RADIX_n;j++)			//各子表初始化為空表
	{
		f[j]=0;
		e[j]=0;
	}
	for(p=r[0].next;p;p=r[p].next)
	{
		j=ord_n(r[p].keys[i]);
		if(!f[j]) f[j]=p;
		else r[e[j]].next=p;
		e[j]=p;						//將p所指的結(jié)點(diǎn)插入第j個(gè)子表中
	}
}//Distribute_n

void Collect_n(SLCell* r,int i,ArrType_n f,ArrType_n e)
//本算法按keys[i]自小至大地將f[0..RADIX_n]所指各子表依次鏈接成一個(gè)鏈表
//e[0..RADIX_n-1]為各子表的尾指針
{
	int j,t;
	for(j=0;!f[j];j=succ(j));		//找第一個(gè)非空子表		
	r[0].next=f[j];t=e[j];			//r[0].next指向第一個(gè)非空子表中的一個(gè)結(jié)點(diǎn)
	while(j<RADIX_n-1)
	{
		for(j=succ(j);j<RADIX_n-1&&!f[j];j=succ(j));	//找下一個(gè)非空子表
		if(f[j]) {r[t].next=f[j];t=e[j];}				//鏈接兩個(gè)非空子表
	}
	r[t].next=0;										//t指向最后一個(gè)非空子表中的最后一個(gè)結(jié)點(diǎn)
}//Collect_n

void Distribute_c(SLCell* r,int i,ArrType_c &f,ArrType_c &e)
//靜態(tài)鏈表L的r域中記錄已按(keys[0],...keys[i-1])有序
//本算法按第i個(gè)關(guān)鍵字keys[i]建立RADIX_c個(gè)子表,使同一子表中記錄的keys[i]相同
//f[0..RADIX_c]和e[0..RADIX_c]分別指向各自表中的一個(gè)和最后一個(gè)記錄
{
	int j,p;
	for(j=0;j<RADIX_c;j++)				//各子表初始化為空表
	{
		f[j]=0;
		e[j]=0;
	}
	for(p=r[0].next;p;p=r[p].next)
	{
		j=ord_c(r[p].keys[i]);
		if(!f[j]) f[j]=p;
		else r[e[j]].next=p;
		e[j]=p;							//將p所指的結(jié)點(diǎn)插入第j個(gè)子表中
	}
}//Distribute_c

void Collect_c(SLCell* r,int i,ArrType_c f,ArrType_c e)
//本算法按keys[i]自小至大地將f[0..RADIX_c]所指各子表依次鏈接成一個(gè)鏈表
//e[0..RADIX_c-1]為各子表的尾指針
{
	int j,t;
	for(j=0;!f[j];j=succ(j));			//找第一個(gè)非空子表
	r[0].next=f[j];t=e[j];				//r[0].next指向第一個(gè)非空子表中的一個(gè)結(jié)點(diǎn)
	while(j<RADIX_c-1)
	{
		for(j=succ(j);j<RADIX_c-1&&!f[j];j=succ(j));	//找下一個(gè)非空子表
		if(f[j]) {r[t].next=f[j];t=e[j];}				//鏈接兩個(gè)非空子表
	}
	r[t].next=0;										//t指向最后一個(gè)非空子表中的最后一個(gè)結(jié)點(diǎn)
}//Collect_c

void RadixSort(SLList &L)
//對(duì)作基數(shù)排序,使得L成為按關(guān)鍵字自小到大的有序靜態(tài)鏈表
{
	int i;
	ArrType_n fn,en;
	ArrType_c fc,ec;
	for(i=0;i<L.recnum;i++) L.r[i].next=i+1;
	L.r[L.recnum].next=0;					//將改造為靜態(tài)鏈表
	for(i=L.keynum-1;i>2;i--)				//按最低位優(yōu)先依次對(duì)各關(guān)鍵字進(jìn)行分配和收集
	{										//分為三段,因?yàn)轫殞⒆址哪莻€(gè)關(guān)鍵字單獨(dú)做
		Distribute_n(L.r,i,fn,en);
		Collect_n(L.r,i,fn,en);
	}
	Distribute_c(L.r,2,fc,ec);
	Collect_c(L.r,2,fc,ec);
	for(i=1;i>=0;i--)
	{
		Distribute_n(L.r,i,fn,en);
		Collect_n(L.r,i,fn,en);
	}
}//RadixSort

void Arrange(SLList &L)
//根據(jù)靜態(tài)鏈表L中各結(jié)點(diǎn)的指針值調(diào)整記錄位置,使得L中記錄按關(guān)鍵字非遞減
{
	int i,p,q;
	SLCell buf;
	p=L.r[0].next;						//p指示第一個(gè)記錄的當(dāng)前位置
	for(i=1;i<L.recnum;i++)				//L.r[1..i-1]已按關(guān)鍵字有序排列
	{									//第i個(gè)記錄在L中的當(dāng)前位置應(yīng)不小于i
		while(p<i) p=L.r[p].next;		//找到第i個(gè)記錄,并用p指示其在L中的當(dāng)前位置
		q=L.r[p].next;					//q指示尚未調(diào)整的表尾
		if(p!=i)
		{			
			buf=L.r[p];L.r[p]=L.r[i];L.r[i]=buf;	//交換記錄
			L.r[i].next=p;							//指向被移走的記錄,使得以后可由while循環(huán)找回
		}
		p=q;							//p指向尚未調(diào)整的表尾,為找第i+1個(gè)記錄做準(zhǔn)備		
	}
}//Arrange


void SLListTraverse(SLList L)
//遍歷靜態(tài)表
{
	int i,j;
	cout<<endl;
	cout<<"CARNUM"<<'\t'<<"CARNAME"<<'\t'<<"COLOR"<<'\t'<<"DATA"<<'\t'<<"OWNERNAME"<<endl<<endl;
	if(L.recnum)
		for(i=1;i<=L.recnum;i++)
		{
			for(j=0;j<MAX_NUM_OF_KEY;j++) cout<<L.r[i].keys[j];
			cout<<'\t'<<L.r[i].otheritems.carname<<'\t'<<L.r[i].otheritems.color<<'\t';
			cout<<L.r[i].otheritems.date<<'\t'<<L.r[i].otheritems.ownername<<endl;
		}//for
}//SLListTraverse

void DataTraverse(SLList L,int num)
//顯示一個(gè)記錄
{
	int j;
	cout<<"(Note:other data term is peculiarity character)"<<endl;
	cout<<"CARNUM"<<'\t'<<"CARNAME"<<'\t'<<"COLOR"<<'\t'<<"DATA"<<'\t'<<"OWNERNAME"<<endl<<endl;
	for(j=0;j<MAX_NUM_OF_KEY;j++) cout<<L.r[num].keys[j];
	cout<<'\t'<<L.r[num].otheritems.carname<<'\t'<<L.r[num].otheritems.carname<<'\t';
	cout<<L.r[num].otheritems.date<<'\t'<<L.r[num].otheritems.ownername<<endl;
}//DataTraverse

void GetSearchKey(KeysType *key)
//得到需要查找的關(guān)鍵字
{
	cout<<"Please input the key you want to search:";
	for(int i=0;i<MAX_NUM_OF_KEY;i++) cin>>key[i];
	if(key[2]>'Z') key[2]=(char)(key[2]-'a'+'A');
}//GetSearchKey

void RandData(SLList &L)
//隨機(jī)生成車牌號(hào),這里將隨機(jī)生成200個(gè)車牌號(hào)
{
	int i,j;
	for(i=1;i<=200;i++)
	{
		for(j=0;j<MAX_NUM_OF_KEY;j++)
		{
			if(j==0) L.r[i].keys[0]=(char)(rand()*4/32768+'0');
			else
			{
				if(j==1&&L.r[i].keys[0]=='3') L.r[i].keys[1]='1';
				else
				{
					if(j==2)
					L.r[i].keys[2]=(char)(rand()*26/32768+'A');
					else L.r[i].keys[j]=(char)(rand()*10/32768+'0');
				}
			}
		}
	}
	L.keynum=7;
	L.recnum=200;
}//RandData

void SLListTraRand(SLList L)
//遍歷隨機(jī)生成的靜態(tài)表
{
	int i,j;
	if(L.recnum)
		for(i=1;i<=L.recnum;i++)
		{
			for(j=0;j<MAX_NUM_OF_KEY;j++) cout<<L.r[i].keys[j];
			cout<<'\t';
		}//for
}//SLListTraRand

bool Equal(KeysType key1[],KeysType key2[])
//判斷相等
{
	for(int i=0;i<MAX_NUM_OF_KEY;i++)
	{if(!EQ(key1[i],key2[i])) return false;}
	return true;
}//Equal

bool Little(KeysType key1[],KeysType key2[])
//判斷較小
{
	for(int i=0;i<MAX_NUM_OF_KEY;i++)
	{
		if(LT(key1[i],key2[i])) return true;
		else if(BG(key1[i],key2[i])) return false;
	}
	return false;
}//Little

int Search_Bin(SLList L,KeysType key[])
{//二分查找
	int low=1,high=L.recnum,mid;
	while(low<=high){
		mid=(low+high)/2;
		if(Equal(key,L.r[mid].keys)) return mid;
		else if(Little(key,L.r[mid].keys)) high=mid-1;
		else low=mid+1;
	}
	return 0;
}//Search_Bin

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费国产在线| 欧美日韩一区高清| 亚洲综合在线第一页| 日韩亚洲欧美在线| 99视频精品在线| 九色综合国产一区二区三区| 一区二区三区中文字幕电影 | 午夜欧美在线一二页| 亚洲国产精品v| 日韩一级二级三级| 在线观看亚洲成人| 成人久久18免费网站麻豆| 三级欧美韩日大片在线看| 亚洲人午夜精品天堂一二香蕉| 精品播放一区二区| 91麻豆精品国产无毒不卡在线观看| 99久久精品久久久久久清纯| 国产高清一区日本| 蜜桃在线一区二区三区| 亚洲成av人片| 一区二区三区四区不卡在线| 国产精品欧美经典| 国产欧美日韩亚州综合| 精品国产乱码久久久久久免费| 欧美卡1卡2卡| 欧美老肥妇做.爰bbww视频| 91福利视频久久久久| 99国产精品久久久久| 成人激情免费电影网址| 国产盗摄视频一区二区三区| 精品伊人久久久久7777人| 男男视频亚洲欧美| 日韩av一区二区在线影视| 亚洲国产精品一区二区久久| 一区二区三区在线看| 亚洲视频在线一区二区| 1000部国产精品成人观看| 国产精品天天看| 国产精品理论在线观看| 中文字幕精品一区二区三区精品| 久久久国产一区二区三区四区小说| 日韩欧美在线123| 日韩一区二区视频在线观看| 欧美一区二区视频在线观看| 91精品国产一区二区人妖| 日韩一级片在线观看| 精品剧情在线观看| 精品久久99ma| 亚洲与欧洲av电影| 亚洲一区二区欧美日韩| 亚洲福利视频一区| 日本一不卡视频| 激情成人午夜视频| 国产高清精品久久久久| 成人美女视频在线观看| 91丨porny丨中文| 日本道免费精品一区二区三区| 在线观看不卡视频| 777xxx欧美| 久久久亚洲国产美女国产盗摄 | 日韩黄色小视频| 免费观看在线色综合| 精品制服美女丁香| 国产成人8x视频一区二区| 99精品国产视频| 欧美日韩国产另类一区| 精品理论电影在线观看 | 久久青草欧美一区二区三区| 日本一区二区高清| 一个色妞综合视频在线观看| 石原莉奈在线亚洲二区| 国产精品一级片在线观看| 97se亚洲国产综合自在线| 欧美日韩精品一区视频| 久久久久久一二三区| 亚洲欧美日韩国产成人精品影院 | 日韩免费在线观看| 亚洲国产精品精华液2区45| 一区二区三区成人| 国产又黄又大久久| 色综合天天视频在线观看| 日韩一级完整毛片| 中文字幕亚洲区| 男女男精品视频| 91麻豆.com| 精品国产免费人成电影在线观看四季 | 日本欧洲一区二区| 国产不卡一区视频| 欧美二区三区91| 中文字幕一区二区三区乱码在线 | 一本在线高清不卡dvd| 日韩视频一区二区在线观看| 国产精品成人在线观看| 免费成人av资源网| 91在线精品一区二区| 精品国产凹凸成av人网站| 亚洲综合成人在线视频| 国产91精品一区二区麻豆网站 | 欧美tickling网站挠脚心| 亚洲欧洲精品一区二区三区不卡| 日本麻豆一区二区三区视频| 色综合久久久久久久久久久| 久久免费的精品国产v∧| 亚洲aⅴ怡春院| 91在线观看视频| 国产日韩欧美麻豆| 蜜桃一区二区三区四区| 欧美亚洲日本国产| 国产精品成人免费| 国产综合久久久久久久久久久久| 欧美日韩一区中文字幕| 亚洲欧美在线另类| 国产1区2区3区精品美女| 精品欧美一区二区在线观看 | 精品一区二区三区免费毛片爱| 欧美影院一区二区| 亚洲三级在线免费| 国产·精品毛片| 国产午夜亚洲精品羞羞网站| 美脚の诱脚舐め脚责91| 欧美日本国产视频| 亚洲精品福利视频网站| 99精品欧美一区二区三区小说 | 国产日韩av一区二区| 久久99精品国产.久久久久久| 欧美人狂配大交3d怪物一区| 一区二区三区美女| 色婷婷综合在线| 亚洲精品国产无套在线观| 99re这里都是精品| 国产精品久久久久久久久免费桃花| 国产老女人精品毛片久久| 日韩欧美国产综合| 美女视频黄 久久| 日韩三级在线免费观看| 蜜桃免费网站一区二区三区| 日韩一区二区精品在线观看| 日韩精品亚洲一区| 日韩三级在线观看| 久草中文综合在线| 久久亚洲影视婷婷| 国产不卡一区视频| 亚洲欧洲日韩一区二区三区| 99久久国产免费看| 伊人开心综合网| 欧美日韩一区二区在线视频| 图片区小说区国产精品视频| 欧美一区二区三区免费观看视频| 视频一区国产视频| 精品黑人一区二区三区久久| 国产传媒欧美日韩成人| 国产精品久久久久婷婷| 色偷偷久久人人79超碰人人澡| 亚洲一区二区美女| 欧美日韩精品电影| 毛片av中文字幕一区二区| 久久久精品一品道一区| 成人av网址在线观看| 一区二区三区小说| 在线不卡一区二区| 国产一区二区看久久| 国产精品欧美综合在线| 欧美视频完全免费看| 麻豆国产精品视频| 国产精品国产三级国产aⅴ入口| 色综合久久66| 人人爽香蕉精品| 国产嫩草影院久久久久| 91黄色免费看| 激情图片小说一区| 亚洲视频在线一区二区| 欧美一卡二卡三卡| 成人99免费视频| 日韩高清不卡在线| 国产精品亲子伦对白| 欧美理论在线播放| 成人激情免费视频| 午夜伦欧美伦电影理论片| 国产午夜亚洲精品理论片色戒| 色婷婷综合久久久中文字幕| 久久国产精品99久久久久久老狼| 国产精品久久久久四虎| 欧美一区二区三区爱爱| k8久久久一区二区三区| 美腿丝袜亚洲三区| 亚洲欧美日韩中文播放| 欧美精品一区在线观看| 欧美性猛片aaaaaaa做受| 国产成人午夜片在线观看高清观看| 亚洲一区二区三区四区中文字幕| 精品国内片67194| 欧美色网一区二区| 成人av电影观看| 老司机精品视频线观看86| 亚洲综合一区二区三区| 国产精品视频一二| 精品粉嫩超白一线天av| 欧美人与z0zoxxxx视频| 色偷偷一区二区三区| 成人午夜视频在线观看|