題目1:實現乙個簡單的雜湊結構使用youlookdeliciousc的做法,即用拉鍊表來實現。
技巧是vector來做為容器
struct node
};int len = 1000;
class myhashmap
void put(int key, int value)
pre = cur;
cur = cur->next;
}pre->next = new node(key, value);
}int get(int key)
cur = cur->next;
}return -1;
}void remove(int key)
pre = cur;
cur = cur->next;}}
};
關於雜湊還有什麼可以說的呢?
1.設計雜湊函式(要求)
常用的雜湊函式總結:
2.防止衝突的方法:
開放定址法
拉鍊法3.裝載因子
對於開放定址法:裝入的數量/陣列的空間
對於拉鍊法:m/n
資料結構之雜湊例程
int hash const string key,int tableszie int hash const string key,int tablesize a hash routine for string objects.int hash const string key,int tables...
資料結構之雜湊表
雜湊表和雜湊化有乙個重要的概念是如何把關鍵字轉換成陣列下標,在雜湊表中這個轉換是通過雜湊函式來完成的。比如規定乙個單詞含有4個字元,對於單詞cats,我們採用 冪的連乘 的方式將乙個單詞對映成數字。因為有27個可能的字元,包括空格,所以冪採用27,則cats的數字下標是3 27 3 1 27 2 2...
資料結構之雜湊表
wikipedia上的解釋 下圖示意了雜湊表 hash table 這種資料結構。雜湊表 如上圖所示,首先分配乙個指標陣列,陣列的每個元素是乙個鍊錶的頭指標,每個鍊錶稱為乙個槽 slot 哪個資料應該放入哪個槽中由雜湊函式決定,在這個例子中我們簡單地選取雜湊函式h x x 11,這樣任意資料x都可以...