數(shù)據(jù)結(jié)構(gòu)與算法(八),查找

前面介紹了基本的排序算法,排序通常是查找的前奏操作。這篇介紹基本的查找算法。

1、符號表

符號表(Symbol Table)是一種存儲鍵值對的數(shù)據(jù)結(jié)構(gòu),它可以將鍵和值關(guān)聯(lián)起來。支持兩種操作:插入,將一組新的鍵值對插入到表中;查找,根據(jù)給定的鍵得到響應(yīng)的值。

符號表,有時又稱索引,是為了加快查找速度而設(shè)計。它將關(guān)鍵字Key和記錄Value相關(guān)聯(lián),通過關(guān)鍵字Key來查找記錄Value。在現(xiàn)實生活中,我們經(jīng)常會遇到各種需要根據(jù)key來查找value的情況,比如DNS根據(jù)域名查找IP地址,圖書館根據(jù)索引號查找圖書等等:

符號表的特征:

  • 表中不能有重復(fù)的鍵
  • 鍵和值不能為空

符號表的抽象數(shù)據(jù)類型: