C Hash表 鏈位址法

2021-06-18 02:26:53 字數 2012 閱讀 3868

/**

* 已知一組關鍵字為,

* 按hash函式為h(key) = key mod 13和鏈位址法處理衝突構造hash表。

* 結果如圖:

* hash[0]

* hash[1]-->01-->14-->27-->70-->null

* hash[2]

* hash[3]-->55-->68-->null

* hash[4]

* hash[5]

* hash[6]-->19-->84-->null

* hash[7]-->20-->null

* hash[8]

* hash[9]

* hash[10]-->10-->23-->null

* hash[11]-->11-->null

* hash[12]

*/#include #include #include #include #define htable_size (13)

#define htable_alg (13) /* 用於hash函式取餘數 */

typedef int elementtype ;

/* 記錄 */

typedef struct tagstnode

stnode;

/* hash表 */

typedef struct tagsthtable

sthtable;

/* hash函式

* h(key) = key mod 13

* */

int hashfunc(int inum);

/* 列印hash表 */

void printhtable(sthtable *psthtable);

/* 將值為inum的節點存入hash表中 */

int storenum2htable(sthtable *psthtable, int inum);

/* hash函式 */

int hashfunc(int inum)

/* 將值為inum的節點存入hash表中 */

int storenum2htable(sthtable *psthtable, int inum)

/* 存在衝突時,直接插入鍊錶尾部 */

else

/* 將資料節點插入hash表中某一鍊錶的最後 */

pstp->pstnext = psttmpnode;

#else

/* 按從小到大的順序插入 */

pstp = psthead->pstnext;

pstq = psthead; /* pstq用於指向pstp前乙個節點,主要是方便插入節點 */

while (null != pstp)

else

}/* 插入新節點 */

psttmpnode->pstnext = pstq->pstnext;

pstq->pstnext = psttmpnode;

}#endif

return 0;

}/* 列印hash表 */

void printhtable(sthtable *psthtable)

printf("\n");

} return ;

}/* 主函式 */

int main(int argc, char **argv)

; /* 測試序列 */

// int aiarry = ; /* used for test */

int iarrylen = sizeof(aiarry)/sizeof(int);

int icount = 0;

sthtable sthtable;

memset(&sthtable, 0, sizeof(sthtable));

for (; icount < iarrylen; icount++)

printhtable(&sthtable);

return 0;

}

雜湊錶鏈位址法解決衝突

問題描述 為了美麗的校園計畫,學校決定改進排隊制度,比如說給飯卡充錢等 給每個人乙個rp值,這個rp值決定這個人來了之後要排的位置,如果當前位置已經有人,那麼從這個位置以後的人後移一位,這個人插進去,如果沒有人的話就直接排到這個位置上去。現在已知按時間從前到後來的人的名字和rp值,求按排隊順序輸出排...

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

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

雜湊表鏈結位址法實現

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