第十四周專案2 用雜湊法組織關鍵字

2021-08-13 14:13:53 字數 1399 閱讀 3408

/*  

*all rights reservrd.      

*檔名稱 :test.cpp      

*版本號:v1.0      

*問題描述: 用雜湊法組織關鍵字

問題及**:

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

#include #include #define n 15

#define m 26

int h(char *s)

int main()

; int i, j, k;

char ht[m][10];

int det[m]; //存放探測次數

for(i=0; i

(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;

}

執行結果:

第十四周 專案2 用雜湊表組織關鍵字

作 者 武美妤 完成日期 2017年11月30日 版 本 號 v1.0 線性探測法 include include define n 15 define m 26 int h char s int main int i,j,k char ht m 10 int det m 存放探測次數 for i ...

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

all right reserved.檔名稱 search 完成日期 2017年12月14日 版本號 v1.0 問題描述 用雜湊法組織關鍵字 輸入描述 標準函式輸入 程式輸出 標準函式輸出 專案 用雜湊法組織關鍵字 已知乙個關鍵字序列為if while for case do break else ...

第十四周專案三

問題及 all right reserved.檔名稱 是否二叉排序樹.cpp 版本號 v1.0 問題描述 設計乙個演算法,判斷給定的二叉樹是否是二叉排序樹。輸入描述 用二叉樹的形式輸入數字 程式輸出 判斷結果 include include define maxsize 100 typedef in...