分離鍊錶法雜湊ADT

2022-09-20 06:15:08 字數 1201 閱讀 7104

分離鍊錶法解決衝突的雜湊表adt實現

資料結構定義如下:

1

struct

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

tablesize)

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的實現**如下:

1

position find(elementtype key, hashtable h)

insert的實現**如下:

1

void

insert(elementtype key, hashtable h)

13 }

delete的實現**如下:

1

void

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...