雜湊錶鏈位址法解決衝突

2021-09-30 14:25:36 字數 1060 閱讀 1455

【問題描述】

為了美麗的校園計畫,學校決定改進排隊制度,比如說給飯卡充錢等……

給每個人乙個rp值,這個rp值決定這個人來了之後要排的位置,如果當前位置已經有人,

那麼從這個位置以後的人後移一位,這個人插進去,如果沒有人的話就直接排到這個位置上去。

現在已知按時間從前到後來的人的名字和rp值,求按排隊順序輸出排隊人的名字。

【任務要求】

任務要求:用鏈位址法解決衝突的方式建立雜湊表,將rp值相同的元素利用頭插法插入到同乙個單鏈表中,並依次輸出雜湊表中的每乙個鍊錶。如:

【測試資料】

輸入 多組測試資料,以檔案結束

每組首先乙個n(1<=n<=200000),接著一行是名字和rp值,名字是不超過20的字串

rp值不超過int

輸出 按排隊順序輸出排隊人的名字

樣例輸入:

4 yougth 1

yuanhang 2

kaichuang 2

yaoyao 1

樣例輸出

yaoyao yougth kaichuang yuanhang

**:

#include

#include

#include

#define max 10 // rp值得範圍

typedef

struct node

node;

void hxb(node *m)//初始化

}void createhxb(node *m, char name, int rp)//建雜湊表

int main()

/*輸出雜湊表*/

for (i = 0; i < max; i++)

}return

0;}

執行截圖:

雜湊(hash)表 鏈位址法解決衝突

首先要感謝下面博主 mark 一下 說的很清楚,也能直接用,只是做了一點點小改進 將衝突的hash值存放到了鏈尾 增加了remove函式,方便刪除不要的節點 此方法中,乙個key至只對應乙個value lookup函式 定義乙個查詢根據key查詢結點的方法,首先是用hash函式計算頭位址,然後根據頭...

hash table 解決雜湊衝突(鏈位址法)

此 運算雜湊值的運算公式f x x 14 當然也可以通過別的函式運算其雜湊值,由於雜湊值會直接作為下標,因而其雜湊值盡量控制在0 15之間,如若雜湊表過長則會造成空間的浪費,一般來說資料個數 0.75 雜湊表長,比較適宜。2020.1.20 在這個特殊的日子,我決定痛改前非給你們解釋一下我的 新增了...

雜湊表鏈結位址法實現

說明 0 7相對於陣列下標,每個陣列元素下標又相當於乙個單鏈表。ifndef hash h define hash h define hashsize 10 typedef struct node node class hashtable endif hash h include pch.h inc...