C 資料結構 20 雜湊

2021-08-31 00:21:26 字數 1213 閱讀 2143

雜湊(hash_map)是最快的資料結構演算法,但是插入資料是以無序的方式插入的,所以資料是沒有排序的.

二叉樹(tree_map)比雜湊慢點(o(logn)),但是二叉樹是以排序方式插入的(大的資料在根的右邊,小的資料在根的左邊)。

雜湊不是標準的stl,但是vs裡面可以直接包含直接使用

**:#ifndef __linearmap_h__

#define __linearmap_h__

#include using namespace std;

templateclass linearmap //線性對映

; };

vectorarr;

public:

linearmap(const int s=101):arr(s)

void put(const key & k,const value & v)

value get(const key &k) //提供鍵值 返回v;};

vectorarr;

public:

hashmap(const int s=101):arr(s)

void put(const key & k,const value & v)

value get(const key &k) //提供鍵值 返回v

unsigned hash(const key &k)const

{unsigned int hashvalue=0;

const char *keyp=reinterpret_cast(&k); //轉換成字元型

for(size_t i=0;i#include "linearmap.h"

#include "hashmap.h"

#include #include //二叉樹對映 紅黑樹 排序

#include //雜湊對映 無排序

using namespace std;

int main()

{ // cout << "hello world!" << endl;

linearmapa;

a.put("bill",12);

a.put("dell",45);

a.put("tom",78);

couta.put("bill",999);

a.put("dell",888);

a.put("tom",777);

cout<**有點問題。

c 資料結構 雜湊表

雜湊表 雜湊表 hashtable 又叫雜湊表,是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊表的做法其實很簡單,就是把key通過乙個固定的演算法函式既所...

資料結構 雜湊表 c

理想的查詢是不經過任何的比較,一次訪問就能得到想要查詢的記錄 要達到這樣的目的就需要在記錄的儲存位置和它的關鍵字之間建立乙個確定的關係f 讓每個關鍵字和結構中的乙個唯一的位址相對應。在查詢的時候,只需要對應關係f找到給定值k的像f k 若結構中存在關鍵字和k相等,則必定在f k 的儲存位置上,由此不...

資料結構 雜湊

裝填因子 key的個數與表長的比值。雜湊表查詢成功的平均查詢長度,查詢失敗的平均查詢長度都是期望,期望怎麼求,平均查詢長度就怎麼求。雜湊表這裡有兩種實現方式 線性開型定址雜湊,鍊錶雜湊。1.線性開型定址雜湊 陣列實現,資料個數不大於表長,放乙個元素時,若發生衝突,則順次線性掃瞄直到找到乙個空位。2....