雜湊表 開雜湊

2021-09-02 22:19:45 字數 2708 閱讀 9469

開雜湊—首先對關鍵碼集合用雜湊函式計算雜湊位址,具有相同位址的關鍵碼歸於同一子集合,每乙個子集合稱為乙個桶,各個桶中的元素通過乙個單鏈表鏈結起來,各鍊錶的頭結點儲存在雜湊表中。 (負載因子a不超過0.5;如果超出必須考慮增容 )

struct hashbucknode //結點

hashbucknode,

*phashbucknode;

typedef

struct hashbuck //雜湊表

hashbuck,

*phashbuck;

void

hashinit

(phashbuck phashbuck,

int capacity)

//賦初始值

for(

int i =

0; i < capacity; i++

) phashbuck->_hasharr = ph;

phashbuck->_size =0;

phashbuck->_capacity = capacity;

}

int

hashfun

(hbddtatype data,

int capacity)

phashbucknode hbbynode

(hbddtatype data)

newnode->_data = data;

newnode->_next =

null

;return newnode;

}

int

hashempty

(phashbuck phashbuck)

int

hashsize

(phashbuck phashbuck)

擴容
void

dilatation

(phashbuck phashbuck)

//新空間的狀態為空

for(

int i =

0; i < capacity; i++

)//拷貝元素

for(

int i =

0; i < phashbuck->_capacity; i++

)else

//頭刪舊空間

((phashbuck->_hasharr)

+ i)

->_next = cur->_next;

free

(cur)

; cur =

null

; cur =

((phashbuck->_hasharr)

+ i)

->_next;}}

}//釋放舊空間

free

(phashbuck->_hasharr)

; phashbuck->_hasharr = ph;

phashbuck->_capacity = capacity;

}

插入
void

hashinsert

(phashbuck phashbuck, hbddtatype data)

cur = cur->_next;

}//不存在

//建立結點,開闢空間

phashbucknode newnode =

hbbynode

(data)

;//頭插入鍊錶

//第乙個結點if(

null==(

(phashbuck->_hasharr)

+ address)

->_next)

else

phashbuck->_size++

;}

int

hashdelete

(phashbuck phashbuck, hbddtatype data)

pre = cur;

cur = cur->_next;

}return0;

}

int

hashfind

(phashbuck phashbuck, hbddtatype data)

cur = cur->_next;

}return0;

}

void

hashdestroy

(phashbuck phashbuck)}}

//釋放舊空間

free

(phashbuck->_hasharr)

; phashbuck->_hasharr =

null

; phashbuck->_capacity =0;

phashbuck->_size =0;

}

雜湊表(開雜湊)

hash table2.h pragma once include define hashmaxsize 1000 typedef int keytype typedef int valtype typedef size t hashfunc keytype key typedef struct h...

雜湊表 開雜湊

開雜湊很簡單。asl的計算忘了,找了兩道題都沒算對,這才是我不寫的真正原因 裡是裝13用的 include using namespace std 雜湊表 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關 鍵碼值對映到表中乙...

雜湊表之開雜湊

了解雜湊基本看概念請看這裡 搜尋結構之雜湊 開雜湊完整 開雜湊 開雜湊每乙個位址的底層實現像乙個個的桶,所以又叫雜湊桶,同乙個桶中存放雜湊衝突的元素。通常,每個桶對應的鍊錶結點都很少,將n個關鍵碼通過某乙個雜湊函式,存放到雜湊表中的m個桶中,那麼每乙個桶中煉表的平均長度為n m,以搜尋平均長度為n ...