第十五周 專案二 用雜湊表找出關鍵字

2021-07-08 21:28:56 字數 1296 閱讀 2402

* 檔名稱:main.cpp,btree.h,btree.cpp

* 版本號:code ::block 12.11

* 問題描述:

已知乙個關鍵字序列為if、while、for、case、do、break、else、struct、union、int、double、float、char、long、bool,共15個字串,雜湊函式h(key)為關鍵字的第乙個字母在字母表中的序號,雜湊表的表長為26。

(1)若處理衝突的方法採用線性探測法,請設計演算法,輸出每個關鍵字對應的h(key),輸出雜湊表,並求成功情況下的平均查詢長度。

(2)若處理衝突的方法採用鏈位址法,請設計演算法,輸出雜湊表,並計算成功情況和不成功情況下的平均查詢長度。

*/測試檔案:

(2)若處理衝突的方法採用鏈位址法,請設計演算法,輸出雜湊表,並計算成功情況和不成功情況下的平均查詢長度。

#include #include #include #define n 15

#define m 26

typedef struct node //定義雜湊鍊錶的節點型別

lnode;

typedef struct

httype;

int h(char *s) //實現雜湊函式

//構造雜湊表

void hash(char *s, httype ht)

}}//輸出雜湊表

void dispht(httype ht)

printf("\n");

}printf("---------------------\n");

}//求查詢成功情況下的平均查詢長度

double searchlength1(char *s, httype ht)

count+=k;

}return 1.0*count/n; //成功情況僅有n種

}//求查詢不成功情況下的平均查詢長度

double searchlength2(httype ht)

count+=k;

}return 1.0*count/m; //不成功時,在表長為m的每個位置上均可能發生

}int main()

; hash(s, ht);

dispht(ht);

printf("查詢成功情況下的平均查詢長度 %f\n", searchlength1(s, ht));

printf("查詢不成功情況下的平均查詢長度 %f\n", searchlength2(ht));

return 0;

}

第十五周 專案二 用雜湊法組織關鍵字

問題及 all right reserved.檔名稱 用雜湊法組織關鍵字.cpp 版本號 v1.0 問題描述 已知乙個關鍵字序列為if while for case do break else struct union int double float char long bool,共15個字串,雜...

第十五周專案二 用雜湊法組織關鍵字之鏈位址法

煙台大學計算機與控制工程學院 問題描述 已知乙個關鍵字序列為if while for case do break else struct union int double float char long bool,共15個字串,雜湊函式h key 為關鍵字的第乙個字母在字母表中的序號,雜湊表的表長為...

第十五周專案1 雜湊表

檔名稱 專案1.cbp 作 者 朱希康 完成日期 2015年12月18日 版 本 號 v1.0 問題描述 建立雜湊表 查詢關鍵字29 刪除關鍵字77並顯示雜湊表。輸入描述 無 程式輸出 雜湊表以及查詢關鍵字 include define maxsize 100 定義最大雜湊表長度 define nu...