雜湊表:根據關鍵碼值(key value)而直接進行訪問的資料結構。
雜湊儲存: 在記錄的儲存位置和它的關鍵字之間建立一種確定的對應關係,使得每個關鍵字key對應乙個儲存位置;
關鍵字: key = 記錄的儲存位置;我們把這種關係key稱為雜湊函式(雜湊函式);查詢時,可根據確定的對應關係,找到給定的key的對映。
雜湊儲存的特性:
<1>儲存時,通過雜湊函式計算出記錄的雜湊位址;
<2>查詢時,根據同樣的雜湊函式計算記錄的雜湊位址,並按此雜湊位址訪問記錄。 利用雜湊儲存方法儲存10行數字第i行儲存的是從小到大對10取余為i的所有數字
//以下函式中使用的互動協議
typedef
int datatype;
typedef
struct node
linknode;
#define hash_table_size 10
//全域性變數為:
linknode * hashtable[hash_table_size]
=;
往雜湊表中插入資料
int
inserthashtable
(int num)
//num為存入的資料
nextnode->data = num;
nextnode->pnext =
null
;while
(*pptmpnode !=
null
&& num >
(*pptmpnode)
->data)
nextnode->pnext =
*pptmpnode;
*pptmpnode = nextnode;
return0;
}int
getkeyvalue
(int num)
//傳入要儲存的資料返回唯一對應key值
遍歷雜湊表
int
showhashtable()
printf
("\n");
}return0;
}
在雜湊表中檢視資料是否存在
int
findhashtable
(int num)
else
}printf
("%d這個數不存在\n"
,num)
;return0;
}
資料結構基礎 雜湊表儲存
和順序表一樣,雜湊表也是用來儲存資料的 和順序表不同的是,雜湊表優化了查詢資料的操作,使得在對通過雜湊表進行儲存的資料進行查詢的開銷大大降低。在雜湊表中,我們用鍵值指代我們需要進行儲存的資料,用雜湊位址表示儲存的位置,用雜湊函式指代通過鍵值確定儲存位置或者通過儲存位置確定鍵值的對映關係 雜湊 除留餘...
資料結構 雜湊
裝填因子 key的個數與表長的比值。雜湊表查詢成功的平均查詢長度,查詢失敗的平均查詢長度都是期望,期望怎麼求,平均查詢長度就怎麼求。雜湊表這裡有兩種實現方式 線性開型定址雜湊,鍊錶雜湊。1.線性開型定址雜湊 陣列實現,資料個數不大於表長,放乙個元素時,若發生衝突,則順次線性掃瞄直到找到乙個空位。2....
資料結構 雜湊
關鍵 不比較關鍵碼,直接搜尋得到需要的數。特點 與搜尋樹不一樣,雜湊結構元素的儲存位置與關鍵碼直接對應,可以不用進行比較遍歷。如圖,建立乙個陣列,把a 4 中的資料按特定的規則儲存到相應的位置,比如a i n,到時候搜尋資料的時候可以按照同樣的規律直接找到這個位置,如果這個位置有數,則存在。比如按照...