您好,登錄后才能下訂單哦!
對于很長的線性數(shù)據(jù)結構,進行搜索,可以用哈希表的方式。
#include <iostream> #include <stdio.h> using namespace std; //數(shù)據(jù)類型 //注意:每一個數(shù)據(jù)節(jié)點,須綁定一個唯一的Key值 //這一點可以簡單理解為:如果是工人信息,可以使用工號;學生信息,可以用學號 //設備信息,可以用設備編號 struct info { int id; char name[10]; }; info data[10]={0};//存儲數(shù)據(jù) //存入數(shù)據(jù) void SetData(int key,const info& value) { int index = key % 10;//簡單的散列算法,此處沒有避免重復值 data[index] = value; } //查找數(shù)據(jù) 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; //一般的數(shù)組查詢方法 // for(int i=0;i<10;i++) // { // if(data[i].id == 1002) // { // cout << c.id << ":" << c.name <<endl; // } // } getchar(); return 0; }
哈希表的優(yōu)勢在于查找時,一次命中目錄。而傳統(tǒng)的數(shù)組或鏈表查找,需要從頭到尾遍歷一次。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。