為班級30個人的姓名設(shè)計一個哈希表_第1頁
為班級30個人的姓名設(shè)計一個哈希表_第2頁
為班級30個人的姓名設(shè)計一個哈希表_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、為班級30個人的姓名設(shè)計一個哈希表,假設(shè)姓名用漢語拼音表示。(關(guān)鍵字可視為拼音首字母 的序號)要求用除留余數(shù)法構(gòu)造哈希函數(shù),用線性探測再散列法處理沖突,平均查找長度的上限 是2。#in clude<iostream>#in clude<string>using namespace std;#define M 47 隨機(jī)數(shù)#define n 50 哈希表長#define q 30人數(shù)struct namechar *py;int k;name NameListn;struct hashchar *py;int k;int si;hash hashlistn;void li

2、stnameOchar *f;int sO,r,i;NameList0.py=HbaojieM;NameList1 .py=MchengaoyangH;NameList2.py=MchenguangzhongH;NameList 3.py=wchenliangliang°NameList4.py=nche nyon gzhoiT;NameList 5.py=wfengchaoH;NameList 6.py=ngexiangfengH;NameList 7.py=HhutingH;NameList 8.py=MhuangpinjinM;NameList9.py=Mjiangxiaoji

3、aw;NameList10.py=HlaidongjieM;NameList11.py=1iyexiaoH;WORD格式可編輯專業(yè)資料NameList12.py=HlidaohuiM;NameList13.pylijue”;NameList14.py=1izhuoqunH;NameList15.py=1infujunn;NameList16.py=1uobinH;NameList17.py=uluokeqingM;NameList18.py=HnichaoM;NameList19.py=Hpanhuafeng,f;NameList20.py=wsijunw;NameList21.py=,son

4、gzhanhuiM;NameList22.py=Msunzhengqing,f;NameList23.py=HwanghaofengM;NameList24.py=nwangjunshuain;NameList25.py=,wangqindeM;NameList26.py=HwangzejunH;NameList27.py=nwangkekeM;NameList28.py=*weixingM;NameList29.py=HwurenkeM;for(i=0;ivq;i+)SO=O;f=NameListi.py;for(r=0;*(f+r)!=<0,;r+)sO+Jf+r);NameList

5、i.k=sO;void creathash()int i;for(i=0;i<n;i+)hashlisti.py=WH;hashlisti.k=O;hashlisti.si=O;for(i=0;i<M;i+)int sum=0;完整版學(xué)習(xí)資料分享一一WORD格式可編輯專業(yè)資料int adr=(NameListi.k)%M;int d=adr;if(hashlistadr.si=O)hashlistadr.k=NameListi.k;hashlistadr.py=NameListi.py;hashlistadr.si=1;)elsewhile(hashlistd.k!=O)d=(d+

6、NameListi.k%10+1 )%M;sum=sum+1;hashlistd.k=NameListi.k;hashlistd.py=NameListi.py;hashlistd.si=sum+1;void findlist()string nam;int s0=0,r,sum=1;cout<<"請輸入姓名的拼音:"<<endl;cin»nam;for(r=0;r<20;r+)sO+=namr;int adr=sO%M;int d=adr;if(hashlistadr.k=sO)cout«M姓名:”vvhashlistad

7、rpyvv”vv”關(guān)鍵字:M«sO«M M«N查找長度為:1M«endl;else if(hashlistadr.k=O)cout«R無此記錄! w«endl;elseint g=0;while(g=0)一完整版學(xué)習(xí)資料分享一一d=(d+sO%1O+1)%M;sum=sum+1;if(hashlistd.k=O)cout«R無此記錄! "vvendl;g=i;)if(hashlistd.k=sO)cout«M姓名:M«hashlistadr.py«M M«M關(guān)鍵字:M«sO«MM«N查找長度為:1M«endl;g=i;void display()int i;for(i=0;i<30;i+)cout«NameListi.py«M ,«NameListi.k«endl;int main()char x;listn ame();creathash();cout«"d.顯示哈希表f.查找任意鍵退出 請選

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論