分離鏈結雜湊表

2021-07-11 18:32:09 字數 1719 閱讀 8755

資料結構與演算法分析——c語言描述 第五章 分離鏈結雜湊表

特點就是通過關鍵字來確定乙個位置。用c涉及到字串好麻煩。

hashsep.h

typedef char* elementtype;

#ifndef _hashsep_h

struct listnode;

typedef struct listnode* position;

struct hashtbl;

typedef struct hashtbl* hashtable;

hashtable initializetable(int tablesize);

void destroytable(hashtable h);

position find(elementtype key, hashtable h);

void insert(elementtype key, hashtable h);

void delete(elementtype key, hashtable h);

elementtype retrive(position p);

#endif

hashsep.c

#include"hashsep.h"

#include"fatal.h"

#include#include#define mintablesize 10

struct listnode ;

typedef position list;

struct hashtbl ;

static int hash(elementtype key, int tablesize)

static int isprime(int num)

static int nextprime(int num)

hashtable initializetable(int tablesize)

h = malloc(sizeof(struct hashtbl));

if (h == null)

fatalerror("out of space!!!");

h->tablesize = nextprime(tablesize);

h->thelists = malloc(sizeof(list)*h->tablesize);

if (h->thelists == null)

fatalerror("out of space!!!");

for (i = 0; i < h->tablesize; i++)

} return h;

}void destroytable(hashtable h)

} free(h->thelists);

free(h);

}position find(elementtype key, hashtable h)

void insert(elementtype key, hashtable h)

}void delete(elementtype key, hashtable h)

}elementtype retrive(position p)

main.c

#include"hashsep.h"

#includeint main()

剩下7周把這本書刷完。

雜湊表實現 分離鏈結法

雜湊是一種用於以常數平均時間執行插入 刪除和查詢的技術。對於分離鏈結法,裝填因子應接近於1。main函式還不知道怎麼列印。快期中考試了 hashtable.cpp 定義控制台應用程式的入口點。解決衝突的第一種方法叫做分離鏈結法,其做法是將雜湊到 同一值得所有元素保留到乙個表中。include std...

雜湊 分離鏈結法

通過某種特定的函式 演算法 稱為雜湊函式 演算法 將要檢索的項與用來檢索的索引 稱為雜湊,或者雜湊值 關聯起來,生成一種便於搜尋的資料結構 稱為雜湊表 也譯為雜湊。我們需要將輸入的字串進行轉換,將其轉換成數字,在插入儲存的數,當然,也可能會存在不同字串對應相同的數字,這時,為了保證不衝突,我們將字串...

雜湊之分離鏈結法

1 include 2 include 3 include 4 include 5 using std vector 6using std list 7using std string 8 using std find 910 int hash const string key 1119 int h...