西西軟件下載最安全的下載網站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → 字典樹Trie和三叉搜索樹Ternary Tree的學習總結

字典樹Trie和三叉搜索樹Ternary Tree的學習總結

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2012/12/31 2:39:04字體大。A-A+

作者:西西點擊:0次評論:0次標簽:

  • 類型:源碼相關大。510KB語言:中文 評分:6.0
  • 標簽:
立即下載

Trie樹,又稱字典樹,單詞查找樹或者前綴樹,是一種用于快速檢索的多叉樹結構,如英文字母的字典樹是一個26叉樹,數(shù)字的字典樹是一個10叉樹。

三叉搜索樹是一種特殊的Trie樹的數(shù)據(jù)結構,它是數(shù)字搜索樹和二叉搜索樹的混合體。它既有數(shù)字搜索樹效率優(yōu)點,又有二叉搜索樹空間優(yōu)點。

在接下來的博文中,我們將介紹Trie樹和三叉搜索樹的定義,實現(xiàn)和優(yōu)缺點。

Trie樹的定義

Trie樹與二叉搜索樹不同,鍵不是直接保存在節(jié)點中,而是由節(jié)點在樹中的位置決定。一個節(jié)點的所有子孫都有相同的前綴(prefix),也就是這個節(jié)點對應的字符串,而根節(jié)點對應空字符串。一般情況下,不是所有的節(jié)點都有對應的值,只有葉子節(jié)點和部分內部節(jié)點所對應的鍵才有相關的值。

Trie樹可以利用字符串的公共前綴來節(jié)約存儲空間,如下圖所示,該Trie樹用11個節(jié)點保存了8個字符串tea,ted,ten,to,A,i,in,inn。

圖1Trie樹

我們注意到Trie樹中,字符串tea,ted和ten的相同的前綴(prefix)為“te”,如果我們要存儲的字符串大部分都具有相同的前綴(prefix),那么該Trie樹結構可以節(jié)省大量內存空間,因為Trie樹中每個單詞都是通過character by character方法進行存儲,所以具有相同前綴單詞是共享前綴節(jié)點的。

當然,如果Trie樹中存在大量字符串,并且這些字符串基本上沒有公共前綴,那么相應的Trie樹將非常消耗內存空間,Trie的缺點是空指針耗費內存空間。

Trie樹的基本性質可以歸納為:

(1)根節(jié)點不包含字符,除根節(jié)點外的每個節(jié)點只包含一個字符。

(2)從根節(jié)點到某一個節(jié)點,路徑上經過的字符連接起來,為該節(jié)點對應的字符串。

(3)每個節(jié)點的所有子節(jié)點包含的字符串不相同。

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)