2010-12-20 50 views
2

我正在經歷一些潛在的面試問題,其中一個問題是你可以使用樹實現一個地圖或鏈表。尋找一個好的地圖定義,如果地圖可以用樹實現

但即使經過一段時間的搜索,我並不清楚地理清楚地圖是什麼,它與數組或哈希表有什麼不同。任何人都可以提供明確的描述。

可以和一個鏈表寫成一棵樹嗎?

+1

就個人而言,我發現維基百科的計算機科學文章總的來說非常好。也就是說,他們不是*(通常)是教程,如果你完全不熟悉他們正在討論的概念,那麼你最好去別處。 – 2010-12-20 00:47:06

回答

0

可以將它(一張地圖)和一個鏈表寫成一棵樹嗎?

地圖是通常用數組表示。要確定某個條目在地圖中的位置,您需要計算其密鑰。請看here以獲得更好的解釋。

可以使用列表實現樹(具有未確定數量的節點)(有關進一步討論,請參見here)。列表通常不作爲樹實現。

我鼓勵你得到this book這是一個經典的數據結構,並會給你很多非常棒的信息。

1

地圖,又名詞典或關聯數組,是一種數據結構,允許您使用鍵查找值。

Java Map可以實現爲HashMap或TreeMap;這表明哈希映射是一種可能的實現,是的,你可以實現一個映射爲樹。

+0

不能將常規數組中的索引視爲關鍵字嗎?因此,地圖與普通香草陣列有何不同? – 2010-12-20 01:06:13

+0

它可以是,如果你限制自己的整數鍵。但是一個Map可以使用任何可排序的,不可變的Object作爲關鍵字。 – duffymo 2010-12-20 01:25:11

+0

此外,當密鑰間隔很大時(它會變得稀疏),數組變得效率低下。 – lijie 2010-12-21 10:48:07