分離鍊錶法解決衝突的雜湊表adt實現
資料結構定義如下:
1struct
listnode;
2 typedef struct listnode *position;
3struct
hashtbl;
4 typedef struct hashtbl *hashtable;
56 hashtable initializetable(int
tablesize);
7void
destroytable(hashtable h);
8position find(elementtype key, hashtable h);
9void
insert(elementtype key, hashtable h);
1011
struct
listnode;
1516
typedef position list;
1718
struct
hashtbl;
初始化雜湊表實現**如下:
1 hashtable initializetable(inttablesize)
9 h = malloc(sizeof(struct
hashtbl));
10 h->tablesize =tablesize;
11 h->thelists = malloc(h->tablesize * sizeof
(list));
12for(i=0; itablesize; i++)
16return
h;
17 }
find的實現**如下:
1position find(elementtype key, hashtable h)
insert的實現**如下:
1void
insert(elementtype key, hashtable h)
13 }
delete的實現**如下:
1void
delete(elementtype key, hashtable h)
16 }
鍊錶ADT實現
鍊錶煉表有一系列不必再記憶體中連續的結構組成,不需要使用位址連續的儲存單元。它是通過 鏈 來建立邏輯關係的,因此在對鍊錶進行插入,刪除操作時不需要移動元素,而只需要修改指標即可。鍊錶分類 按是否包含指向前繼的指標可分為單鏈表和雙向鍊錶 按是否成環狀可以分為迴圈鍊錶和非迴圈鍊錶。由於連表示離散的分布在...
分離鏈結雜湊表
資料結構與演算法分析 c語言描述 第五章 分離鏈結雜湊表 特點就是通過關鍵字來確定乙個位置。用c涉及到字串好麻煩。hashsep.h typedef char elementtype ifndef hashsep h struct listnode typedef struct listnode p...
C語言鍊錶ADT
這是乙個以listdata 乙個結構體 為資料域的鍊錶,如需使用,請在list.h中修改對它的定義。鍊錶list 資料結構體listdata 在list.件裡的注釋已經明確說明各個函式的作用 引數與返回值,不再贅述 與陣列相同,下標從0開始 使用前,先用newlist 函式建立鍊錶 使用後,記得用d...