簡單的哈希表映射試驗
阿新 • • 發佈:2017-09-24
c/c++
對於很長的線性數據結構,進行搜索,可以用哈希表的方式。
#include <iostream> #include <stdio.h> using namespace std; //數據類型 //註意:每一個數據節點,須綁定一個唯一的Key值 //這一點可以簡單理解為:如果是工人信息,可以使用工號;學生信息,可以用學號 //設備信息,可以用設備編號 struct info { int id; char name[10]; }; info data[10]={0};//存儲數據 //存入數據 void SetData(int key,const info& value) { int index = key % 10;//簡單的散列算法,此處沒有避免重復值 data[index] = value; } //查找數據 info find(int key) { int index = key % 10; return data[index]; } int main(int argc, char* argv[]) { info a={1001,"張三"}; SetData(a.id,a); info b={1002,"李四"}; SetData(b.id,b); info c = find(1002); cout << c.id << ":" << c.name <<endl; //一般的數組查詢方法 // for(int i=0;i<10;i++) // { // if(data[i].id == 1002) // { // cout << c.id << ":" << c.name <<endl; // } // } getchar(); return 0; }
哈希表的優勢在於查找時,一次命中目錄。而傳統的數組或鏈表查找,需要從頭到尾遍歷一次。
簡單的哈希表映射試驗