【問題描述】
為了美麗的校園計畫,學校決定改進排隊制度,比如說給飯卡充錢等……
給每個人乙個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...