雜湊表 基於c 中map容器的實現

2022-02-26 11:42:43 字數 614 閱讀 6009

雜湊表是一類經常使用的查詢技術,在程式設計中也經常使用,這裡簡單談談基於map的雜湊表的實現。對映(map)是stl的乙個關聯容器,它提供一對一(第乙個為關鍵字,每個關鍵字只能出現一次;第二個為該關鍵字的值,即key=value的形式)的資料處理能力

map常用的建構函式如下:

1 map mapstudent;  //

int表示關鍵字 char*表示鍵值 mapstudent表示容器物件

map的常用插入資料方法有三種

實現**如下:

#include#include

#include

#include

using

namespace

std;

intmain()

可以使用size函式

int nsize=mapstudent.size();

有兩種方法:1、採用迭代器,上面已經說過;2、用陣列的方式,實現**如下:

int nszie=mapstudent.size();

for(int nindex=0;nindex)

雜湊表(雜湊表) C 實現

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

雜湊表的C 實現

雜湊表的幾個概念 映像 由雜湊函式得到的雜湊表是乙個映像。衝突 如果兩個關鍵字的雜湊函式值相等,這種現象稱為衝突。處理衝突的幾個方法 1 開放位址法 用開放位址處理衝突就是當衝突發生時,形成乙個位址序列,沿著這個序列逐個深測,直到找到乙個 空 的開放位址,將發生衝突的關鍵字值存放到該位址中去。例如 ...

雜湊表(雜湊表)的實現

雜湊函式直接用key size的形式,size為雜湊表的大小。衝突處理採用平方探測法,為保證可以探測到整個雜湊表空間,雜湊表大小設定為4k 3形式的素數。當雜湊表中的元素過多時會造成效能下降,這時應該倍增雜湊表的大小,重新計算原來雜湊表中每個元素在新的雜湊表中的位置。雜湊表的實現 hashtable...