雜湊表實現《C 實踐之路》

2021-08-28 02:17:31 字數 1116 閱讀 4018

首先,弄乙個字元緩衝器來訪問這些key

const

int maxbufsize = 500; //設定緩衝器最大值

class stringbuffer

bool willfit(int len) const //判斷加進新的key後緩衝器會不會爆滿

void add(char

const *str)

int getoffset() const

bool isequal(int offstr, char

const *str) const

char

const *getstring(int offstr) const

private:

char _buf[maxbufsize]; //緩衝器

int _curoffset; //給出當前的offset,就是從這裡之前的是用過的,之後的就是待用的

};

然後弄雜湊表

const

int sizehtable = 127; //雜湊表最大值

class htable;

其中各函式的實現就給個課本的雜湊函式吧,其他自行實現

int htable::hash(char

const *str)const

return h % sizehtable;

}

最後是字串表

class stringtable;
函式實現,就挑乙個坑了我的find()函式來講

int stringtable::find(char

const *str) const

return idnotfound;

}

鄉親們,就是這個const_iterator,我當時直接把i的型別定義為listiterator,搞了挺久才發現因為l是const型別,它的begin也得是const_iterator,關於迭代器還是有的學的。

其它沒實現的函式都是隨便寫

嗯 。

就醬

雜湊表(雜湊表) C 實現

雜湊函式就是 關鍵字key 到 值value 的對映 value f key value反映的是關鍵字key的儲存位址。直接定址法 f key a key b 例如存放不同出生年份的人口數量,出生年份是關鍵字,那麼可以用直接定址法。直接定址法的優點是簡單均勻,也不會產生衝突 缺點是該方法適合表比較小...

雜湊表 雜湊表 C語言簡單實現

本文參考自 大話資料結構 通過某個函式f計算出記錄的儲存位置,而不需要通過比較,這就是一種新的儲存技術 雜湊技術。雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 在查詢時,根據這個確定的對應關係找到給定值key的對映f key 若查...

雜湊表與雜湊函式 C實現

雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中 乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。給定表m,存在函式f key 對任意給定的關鍵字值key,代入函式後...