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

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

?? 哈希表的綜合操作.txt

?? 哈希算法的描述
?? TXT
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//* * * * * * * * * * * * * * * * * * * * * * * * *
//*PROGRAM :哈希表的綜合操作 *
//*CONTENT :Insert,Search,Deltet *
//* * * * * * * * * * * * * * * * * * * * * * * *
#include <dos.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 12 //哈希表的最大容量,與所采用的哈希函數(shù)有關(guān)
enum BOOL{False,True};
enum HAVEORNOT{NULLKEY,HAVEKEY,DELKEY}; 
//哈希表元素的三種狀態(tài),沒(méi)有記錄、有記錄、有過(guò)記錄但已被刪除
typedef struct //定義哈希表的結(jié)構(gòu)
{int elem[MAXSIZE]; //數(shù)據(jù)元素體
HAVEORNOT elemflag[MAXSIZE]; //元素狀態(tài)標(biāo)志,沒(méi)有記錄、有記錄、有過(guò)記錄但已被刪除
int count; //哈希表中當(dāng)前元素的個(gè)數(shù) 
}HashTable;
typedef struct
{int keynum; //記錄的數(shù)據(jù)域,只有關(guān)鍵字一項(xiàng)
}Record;
void InitialHash(HashTable&); //初始化哈希表
void PrintHash(HashTable); //顯示哈希表中的所有元素
BOOL SearchHash(HashTable,int,int&); //在哈希表中查找元素
BOOL InsertHash(HashTable&,Record); //在哈希表中插入元素
BOOL DeleteHash(HashTable&,Record); //在哈希表中刪除元素
int Hash(int); //哈希函數(shù)
void main()
{HashTable H; //聲明哈希表H
char ch,j='y'; 
int position;
Record R;
BOOL temp;
textbackground(3); //設(shè)定屏幕顏色
textcolor(15);
clrscr();
//-------------------------程序說(shuō)明-------------------------------
printf("This program will show how to operate to a HashTable.\n");
printf("You can display all elems,search a elem,\ninsert a elem,delete a elem.\n");
//----------------------------------------------------------------
InitialHash(H);
while(j!='n')
{printf("1.display\n");
printf("2.search\n");
printf("3.insert\n");
printf("4.delete\n");
printf("5.exit\n");
scanf(" %c",&ch); //輸入操作選項(xiàng)
switch(ch)
{case '1':if(H.count) PrintHash(H); //哈希表不空
else printf("The HashTable has no elem!\n");
break;
case '2':if(!H.count) printf("The HashTable has no elem!\n"); //哈希表空
else
{printf("Please input the keynum(int) of the elem to search:");
scanf("%d",&R.keynum); //輸入待查記錄的關(guān)鍵字
temp=SearchHash(H,R.keynum,position); 
//temp=True:記錄查找成功;temp=False:沒(méi)有找到待查記錄
if(temp) printf("The position of the elem is %d\n",position);
else printf("The elem isn't exist!\n"); 
}
break;
case '3':if(H.count==MAXSIZE) //哈希表已滿
{printf("The HashTable is full!\n");
break;
}
printf("Please input the elem(int) to insert:");
scanf("%d",&R.keynum); //輸入要插入的記錄
temp=InsertHash(H,R); 
//temp=True:記錄插入成功;temp=False:已存在關(guān)鍵字相同的記錄
if(temp) printf("Sucess to insert the elem!\n");
else printf("Fail to insert the elem.The same elem has been exist!\n");
break;
case '4':printf("Please input the keynum of the elem(int) to delet:");
scanf("%d",&R.keynum); //輸入要?jiǎng)h除記錄的關(guān)鍵字
temp=DeleteHash(H,R); 
//temp=True:記錄刪除成功;temp=False:待刪記錄不存在 
if(temp) printf("Sucess to delete the elem!\n");
else printf("The elem isn't exist in the HashTable!\n");
break;
default: j='n';
}
}
printf("The program is over!\nPress any key to shut off the window!\n");
getchar();getchar();
}
void InitialHash(HashTable &H)
{//哈希表初始化
int i;
H.count=0;
for(i=0;i<MAXSIZE;i++) H.elemflag[i]=NULLKEY;
}
void PrintHash(HashTable H)
{//顯示哈希表所有元素及其所在位置
int i;
for(i=0;i<MAXSIZE;i++) //顯示哈希表中記錄所在位置
if(H.elemflag[i]==HAVEKEY) //只顯示標(biāo)志為HAVEKEY(存放有記錄)的元素
printf("%-4d",i);
printf("\n");
for(i=0;i<MAXSIZE;i++) //顯示哈希表中記錄值
if(H.elemflag[i]==HAVEKEY)
printf("%-4d",H.elem[i]);
printf("\ncount:%d\n",H.count); //顯示哈希表當(dāng)前記錄數(shù)
}
BOOL SearchHash(HashTable H,int k,int &p)
{//在開放定址哈希表H中查找關(guān)鍵字為k的數(shù)據(jù)元素,若查找成功,以p指示
//待查數(shù)據(jù)元素在表中的位置,并返回True;否則,以p指示插入位置,并
//返回False
int p1;
p1=p=Hash(k); //求得哈希地址
while(H.elemflag[p]==HAVEKEY&&k!=H.elem[p]) 
//該位置中填有記錄并且關(guān)鍵字不相等
{p++; //沖突處理方法:線性探測(cè)再散列
if(p>=MAXSIZE) p=p%MAXSIZE; //循環(huán)搜索
if(p==p1) return False; //整個(gè)表已搜索完,沒(méi)有找到待查元素
}
if(k==H.elem[p]&&H.elemflag[p]==HAVEKEY) //查找成功,p指示待查元素位置
return True; 
else return False; //查找不成功
}
BOOL InsertHash(HashTable &H,Record e)
{//查找不成功時(shí)插入元素e到開放定址哈希表H中,并返回True,否則返回False
int p;
if(SearchHash(H,e.keynum,p)) //表中已有與e有相同關(guān)鍵字的元素
return False;
else
{H.elemflag[p]=HAVEKEY; //設(shè)置標(biāo)志為HAVEKEY,表示該位置已有記錄
H.elem[p]=e.keynum; //插入記錄
H.count++; //哈希表當(dāng)前長(zhǎng)度加一 
return True;
}
}
BOOL DeleteHash(HashTable &H,Record e)
{//在查找成功時(shí)刪除待刪元素e,并返回True,否則返回False
int p;
if(!SearchHash(H,e.keynum,p)) //表中不存在待刪元素
return False;
else
{H.elemflag[p]=DELKEY; //設(shè)置標(biāo)志為DELKEY,表明該元素已被刪除
H.count--; //哈希表當(dāng)前長(zhǎng)度減一
return True;
}
}
int Hash(int kn)
{//哈希函數(shù):H(key)=key MOD 11
return (kn%11);
}


******************************************************************
知道是你沒(méi)說(shuō)清還是我理解不好,不太明白你的目的!   
  整理一份資料給你參考:   
           散列方法不同于順序查找、二分查找、二叉排序樹及B-樹上的查找。它不以關(guān)鍵字的比較為基本操作,采用直接尋址技術(shù)。在理想情況下,無(wú)須任何比較就可以找到待查關(guān)鍵字,查找的期望時(shí)間為O(1)。   
    
  散列表的概念   
    
  1、散列表   
           設(shè)所有可能出現(xiàn)的關(guān)鍵字集合記為U(簡(jiǎn)稱全集)。實(shí)際發(fā)生(即實(shí)際存儲(chǔ))的關(guān)鍵字集合記為K(|K|比|U|小得多)。   
           散列方法是使用函數(shù)h將U映射到表T[0..m-1]的下標(biāo)上(m=O(|U|))。這樣以U中關(guān)鍵字為自變量,以h為函數(shù)的運(yùn)算結(jié)果就是相應(yīng)結(jié)點(diǎn)的存儲(chǔ)地址。從而達(dá)到在O(1)時(shí)間內(nèi)就可完成查找。   
      其中:   
            ①   h:U→{0,1,2,…,m-1}   ,通常稱h為散列函數(shù)(Hash   Function)。散列函數(shù)h的作用是壓縮待處理的下標(biāo)范圍,使待處理的|U|個(gè)值減少到m個(gè)值,從而降低空間開銷。   
           ②   T為散列表(Hash   Table)。   
           ③   h(Ki)(Ki∈U)是關(guān)鍵字為Ki結(jié)點(diǎn)存儲(chǔ)地址(亦稱散列值或散列地址)。   
           ④   將結(jié)點(diǎn)按其關(guān)鍵字的散列地址存儲(chǔ)到散列表中的過(guò)程稱為散列(Hashing)   
        
    
  3、散列表的沖突現(xiàn)象   
  (1)沖突   
           兩個(gè)不同的關(guān)鍵字,由于散列函數(shù)值相同,因而被映射到同一表位置上。該現(xiàn)象稱為沖突(Collision)或碰撞。發(fā)生沖突的兩個(gè)關(guān)鍵字稱為該散列函數(shù)的同義詞(Synonym)。   
       【例】上圖中的k2≠k5,但h(k2)=h(k5),故k2和K5所在的結(jié)點(diǎn)的存儲(chǔ)地址相同。   
    
  (2)安全避免沖突的條件   
           最理想的解決沖突的方法是安全避免沖突。要做到這一點(diǎn)必須滿足兩個(gè)條件:   
  ①其一是|U|≤m   
  ②其二是選擇合適的散列函數(shù)。   
            這只適用于|U|較小,且關(guān)鍵字均事先已知的情況,此時(shí)經(jīng)過(guò)精心設(shè)計(jì)散列函數(shù)h有可能完全避免沖突。   
    
  (3)沖突不可能完全避免   
           通常情況下,h是一個(gè)壓縮映像。雖然|K|≤m,但|U|>m,故無(wú)論怎樣設(shè)計(jì)h,也不可能完全避免沖突。因此,只能在設(shè)計(jì)h時(shí)盡可能使沖突最少。同時(shí)還需要確定解決沖突的方法,使發(fā)生沖突的同義詞能夠存儲(chǔ)到表中。   

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图视频免费播放| 久久久久久黄色| 日韩一区精品视频| 制服丝袜中文字幕亚洲| 日韩专区在线视频| 91亚洲精品乱码久久久久久蜜桃| 久久久蜜臀国产一区二区| 成人一区二区在线观看| 亚洲人成在线播放网站岛国| 欧洲视频一区二区| 精品一区二区三区免费观看| 久久久久成人黄色影片| 99久久99久久免费精品蜜臀| 亚洲卡通欧美制服中文| 欧美一区日韩一区| 粉嫩aⅴ一区二区三区四区五区 | 一区二区在线观看视频在线观看| 欧美手机在线视频| 久久精品国产久精国产爱| 国产精品三级av| 欧美视频日韩视频| 狠狠色丁香婷综合久久| 综合av第一页| 日韩欧美一级二级三级| 91在线国内视频| 日韩成人午夜电影| 一区精品在线播放| 日韩三级精品电影久久久 | 国产在线观看免费一区| 亚洲黄色免费网站| 精品卡一卡二卡三卡四在线| 一本色道a无线码一区v| 国产在线精品一区二区| 亚洲成人在线网站| 成人免费在线播放视频| 日韩精品综合一本久道在线视频| 色综合天天狠狠| 久久99九九99精品| 亚洲猫色日本管| 久久精品人人做人人综合 | 美女任你摸久久| 伊人夜夜躁av伊人久久| 欧美韩国日本综合| 欧美va亚洲va香蕉在线 | 91精品在线观看入口| 99视频有精品| 国产乱码精品一区二区三区忘忧草 | 国产一区二区三区久久悠悠色av| 亚洲欧美日韩电影| 欧美韩国日本一区| 精品人在线二区三区| 欧美日韩另类一区| 在线观看亚洲专区| fc2成人免费人成在线观看播放| 久久综合综合久久综合| 午夜精品一区二区三区免费视频| 综合色中文字幕| 国产精品色婷婷久久58| 久久久国际精品| 精品噜噜噜噜久久久久久久久试看 | 国产精品一区二区视频| 久久精品国产一区二区| 免费av网站大全久久| 天天色天天操综合| 亚洲国产成人高清精品| 一级做a爱片久久| 亚洲免费av观看| 玉米视频成人免费看| 亚洲人123区| 一区二区三区在线影院| 亚洲精品视频免费看| 亚洲婷婷综合久久一本伊一区| 国产精品网站在线| 国产精品麻豆久久久| 欧美国产日韩a欧美在线观看 | 免费精品视频最新在线| 午夜电影一区二区| 日韩福利视频网| 久久精品国产在热久久| 免费成人在线观看视频| 极品少妇一区二区| 国产成人午夜片在线观看高清观看| 国产精品99久久不卡二区| 欧美一级欧美三级在线观看| 日韩欧美国产不卡| 精品国产亚洲在线| 国产欧美一区二区三区在线老狼| 国产日韩欧美综合一区| 国产精品久久国产精麻豆99网站| 亚洲色图在线播放| 亚洲妇熟xx妇色黄| 久久99国产精品免费| 国产成a人亚洲| 99久久er热在这里只有精品66| 91久久精品国产91性色tv| 欧美日精品一区视频| 欧美一区二区观看视频| 久久精品日韩一区二区三区| 中国av一区二区三区| 一二三四区精品视频| 青青草精品视频| 国产成人精品综合在线观看| 94-欧美-setu| 日韩一区和二区| 国产精品不卡视频| 亚洲h在线观看| 国产成都精品91一区二区三| 91精品1区2区| 日韩视频免费观看高清完整版| 中文字幕欧美日韩一区| 亚洲高清不卡在线观看| 国产风韵犹存在线视精品| 91免费在线视频观看| 日韩精品一区二区三区中文精品| 久久综合精品国产一区二区三区| 综合色中文字幕| 麻豆精品在线播放| 91免费看视频| 久久久国产午夜精品 | 日韩制服丝袜先锋影音| 国产一区在线观看视频| 91福利视频在线| 日本一区二区三区四区在线视频| 亚洲国产精品影院| 成人免费看视频| 欧美大片免费久久精品三p| 亚洲三级视频在线观看| 激情综合五月天| 欧美日韩一级二级三级| 国产精品麻豆一区二区| 狠狠色综合播放一区二区| 欧美日韩成人一区| 亚洲色图欧美在线| 国产精品一区专区| 91精品欧美综合在线观看最新| 亚洲日穴在线视频| 国产大陆亚洲精品国产| 精品日韩欧美在线| 日韩精品电影一区亚洲| 91成人在线精品| 中文字幕成人网| 韩国精品一区二区| 欧美精品在线观看播放| 亚洲激情av在线| 97久久超碰精品国产| 欧美国产激情一区二区三区蜜月| 日韩av在线播放中文字幕| 欧美视频一区在线| 亚洲精品日韩一| 91视频你懂的| 国产精品国产精品国产专区不片| 国产一区二区三区| 欧美变态tickling挠脚心| 日本亚洲电影天堂| 91精品婷婷国产综合久久性色 | 亚洲人吸女人奶水| 成人精品免费网站| 国产精品情趣视频| 国产 日韩 欧美大片| 久久久精品一品道一区| 国产一区二区精品久久91| 精品国产亚洲一区二区三区在线观看| 蜜乳av一区二区三区| 日韩三级视频中文字幕| 蜜臀91精品一区二区三区| 这里只有精品免费| 美女性感视频久久| 日韩精品影音先锋| 国产福利一区二区三区视频 | 欧美一级欧美一级在线播放| 性感美女极品91精品| 欧美人妖巨大在线| 蜜芽一区二区三区| 久久久久久久久久久久久久久99| 国产一区二区h| 国产精品美女久久久久久久久久久 | 国产欧美一区视频| 不卡大黄网站免费看| 亚洲欧美激情插| 欧美日韩一卡二卡| 精品中文字幕一区二区| 国产欧美在线观看一区| 色综合欧美在线视频区| 亚洲综合清纯丝袜自拍| 日韩一级完整毛片| 国产大陆精品国产| 一区二区三区高清不卡| 91精品国产91综合久久蜜臀| 狠狠v欧美v日韩v亚洲ⅴ| 中文字幕av一区二区三区| 在线看一区二区| 日韩电影一区二区三区四区| 久久婷婷久久一区二区三区| 99精品久久99久久久久| 丝袜美腿高跟呻吟高潮一区| 久久久综合视频| 欧美视频日韩视频在线观看| 久久激情五月激情| 亚洲品质自拍视频| 精品国产欧美一区二区|