雜湊 雜湊鍊錶以及線性開型定址

2021-10-22 12:19:10 字數 3233 閱讀 9273

#include

using

namespace std;

bool iffind=

false

;//全域性變數

template

<

class

t>

struct hashnode};

template

<

class

t>

class

hashtable

//雜湊錶類

;template

<

class

t>

hashtable

::hashtable

(int thedivisor,t& initial)

dsize=0;

}template

<

class

t>

bool hashtable

::empty

(int pos)

//int length()

template

<

class

t>

int hashtable

::length

(int pos)

// cout<

}template

<

class

t>

hashnode

* hashtable

::find

(t& theelement)

while

(curnode-

>next!=

null

&&curnode-

>next-

>element

//遍歷該鍊錶

if(curnode-

>next==

null

||curnode-

>next-

>element >theelement)

//找不到

else

}else

}template

<

class

t>

void hashtable

::search

(t& theelement)

template

<

class

t>

void hashtable

::insert

(t& theelement)

curnode-

>next=

new hashnode

(theelement,curnode-

>next)

; dsize++;}

template

<

class

t>

void hashtable

::erase

(t & theelement)

dsize--

; hashnode

* erasenode=curnode-

>next;

// cout<

if(curnode-

>next-

>next!=

null

) curnode-

>next=curnode-

>next-

>next ;

else

curnode-

>next=

null

;delete erasenode;

cout<<

length

(pos)

<

}template

<

class

t>

void hashtable

::clear()

delete table[i]

->next;}}

intmain()

hashchain.

clear()

;return0;

}

#include

using

namespace std;

template

<

class

t>

class

hashtable

//雜湊錶類};

template

<

class

t>

hashtable

::hashtable

(int thedivisor)

dsize=0;

}template

<

class

t>

int hashtable

::find

(t& theelement)

while

(i!=pos)

;//是否回到起始桶

return i;

//表滿

}template

<

class

t>

t* hashtable

::search

(t& theelement)

// cout/cout<

cout<

return table[index];}

template

<

class

t>

int hashtable

::insert

(t& theelement)

else

return-1

;}template

<

class

t>

void hashtable

::erase

(t & theelement)

i=(i+1

)%divisor;

} cout<

} dsize--;}

intmain()

else

if(op==1)

hashlist.

search

(x);

//cout

hashlist.

erase

(x);

} hashlist.

clear()

;return0;

}

線性開型定址實現的最大難點就是刪除函式:

雜湊表(開雜湊)

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 而直接進行訪問的資料結構。也就是說,它通過把關 鍵碼值對映到表中乙...

雜湊表 開雜湊

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