雜湊表應用例項

2021-06-02 21:16:42 字數 1248 閱讀 2179

1:問題描述

針對某個集體(比如你所在的班級)中的「人名」設計乙個雜湊表,使得平均查詢長度不超過r,完成相應的建表和查表程式。

2:基本要求

假設人名為中國人姓名的漢語拼音形式。待填入雜湊表的人名共有30個,取平均查詢長度的上限為2。雜湊函式用除留餘數法構造,用偽隨機探測再雜湊發處理衝突。

3:資料結構設計

#ifndef _hashtest_h_

#define _hashtest_h_

#define name_no 30

#define hash_length 50

#define m 50;

typedef struct

name;

typedef struct //雜湊表

hash;

#endif

4:主要演算法設計

(1)姓名(結構體陣列)初始化

名字以拼音的形式夠成字串,將字串的各個字元所對應的ascii碼相加,所得的整數做為雜湊表的關鍵字。

void initnamelist()          

; int s0=0,r,sum=1,adr,d;

printf("請輸入姓名的拼音:");

scanf("%s",name);

for(r=0;r<20;r++) //求出姓名的拼音所對應的整數(關鍵字)

s0+=name[r];

adr=s0%m; //使用雜湊函式

d=adr;

if(hashlist[adr].k==s0) //分3種情況進行判斷

printf("\n姓名:%s 關鍵字:%d 查詢長度為: 1",hashlist[d].py,s0);

else if (hashlist[adr].k==0)

printf("無此記錄!");

else

if(hashlist[d].k==s0)

}while(g==0);

} }

(4)顯示雜湊表

void display()       

for(i=0;i(5)主函式

void main()

while(ch1!='n');

}

雜湊表(雜湊表)應用例項,同時借助最小堆

1.介紹 陣列的特點是 定址容易,插入和刪除困難 而鍊錶的特點是 定址困難,插入和刪除容易。這個世界上有沒有一種能夠綜合兩者優點的,既定址容易又插入和刪除容易的資料結構?yes,它就是hash表。2.雜湊雜湊方法 1 除留取餘法 2 平方雜湊法 3 fibonacci雜湊法 3.雜湊表使用範圍 快速...

雜湊表應用

本文 雜湊表的應用 c 實現 問題描述 設計雜湊表實現 號碼查詢系統,實現下列功能 1 假定每個記錄有下列資料項 號碼 使用者名稱 位址。2 一是從資料檔案old.txt 自己現行建好 中讀入各項記錄,二是由系統隨機產生各記錄,並且把記錄儲存到new.txt檔案中以及顯示到螢幕上,記錄條數不要少於3...

雜湊表應用

以下 用開雜湊裡的拉鍊法解決雜湊衝突 include include using namespace std define hashsize 3 struct movietype struct node class hashtable hashtable hashtable hashtable ha...