您好,登錄后才能下訂單哦!
對于很長的線性數據結構,進行搜索,可以用哈希表的方式。
#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; }
哈希表的優勢在于查找時,一次命中目錄。而傳統的數組或鏈表查找,需要從頭到尾遍歷一次。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。