2016-10-17 26 views
5

雖然很難找到「基數樹」的一致定義,但大多數公認的基數樹定義表明它是一個壓縮的前綴樹。在這種情況下,我很難理解的是「基數」一詞的重要性。爲什麼壓縮前綴樹如此命名(即基數樹),而非壓縮的前綴樹不叫基數樹?基數中「基數」一詞的含義

+1

對於我的猜測,沒有一個好的答案。我的意思是,特里樹與基數樹一樣有「基數」。然而,有人使用這個術語,並保持這種方式。更重要的是,基數樹是一個樹的壓縮版本,這就是爲什麼有些人使用術語壓縮前綴樹或壓縮樹。另外我使用術語PATRICIA來調用相同的數據結構。然而,有一些辯論,根據維基百科PATRICIA是一種特殊類型的基數樹,用於存儲二進制字符串。 –

+0

我最終找到了答案,並將我的理解作爲對另一個問題線索的回覆發佈了http://stackoverflow.com/questions/14708134/what-is-the-difference-between-trie-and-radix-trie-data - 結構/ 40567517#40567517 – KGhatak

回答

1

維基百科可以回答這個問題,https://en.wikipedia.org/wiki/Radix

在數學標記系統中,基數或鹼是 獨特位,包括零,用於在 定位數系來表示數字的數量。例如,對於十進制系統(目前使用的 最常見的系統)基數爲10,因爲它是通過9

使用從0 十位數和樹https://en.wikipedia.org/wiki/Radix_tree

一個數據結構,它表示一個空間優化的樹,其中每個只有子節點的 節點與其父節點合併。其結果是 ,每個內部節點的子節點的數量爲至少基數樹,其中r是一正整數且x 2的冪的 基數R,的x≥1

最後檢查字典:

1.radix(名詞)

甲原始字,從中換句話說彈簧。

基數樹中的基數決定了樹的子樹(或深度)的數量與「稀疏性」之間的平衡,或者多少個後綴是唯一的。

編輯 - 闡述

每一個內部節點的孩子的數量至少爲基數[R

讓我們考慮的話 「ABA,異常,痤瘡,和深不可測」。在常規前綴樹(或線索),每一個弧增加一個字母的單詞,所以我們有:

-a-b-a- 
    n-o-r-m-a-l- 
    y-s-m-a-l- 
    -c-n-e- 

,我的畫有點誤導 - 在嘗試字母通常坐上弧,所以「 - '是一個節點,字母是邊緣。注意很多內部節點有一個孩子!現在的緊湊型(和明顯)形式:

-a-b -a- 
     normal- 
     ysmal- 
    cne- 

現在好了,我們有一個內部節點(僅次於二)有3個孩子!基數是2的正冪,所以在這種情況下是2。爲什麼2而不是3?那麼先注意根有2個孩子。另外,假設我們想添加一個詞。選項:

  • b前綴 - 好了,4比2
  • b子的邊緣更大 - 說「不正常」。那麼插入的方式工作共用部分會分裂,我們將有:

相關分支:

-normal-ly- 
     - 

正常現在是一個內部節點,但有2個孩子(一個葉)。 - 另一種情況是例如刪除痤瘡。但是,現在的緊性說b後的節點必須合併回去,因爲它是唯一的孩子,所以樹變得

樹:

-ab-a 
    -normal-ly- 
      - 
    -ysmal 

因此,我們仍然維持孩子> 2。

希望澄清!

+0

@ kabanus - 我無法理解_「每個內部節點至少是基數r」_。你會詳細說明它的含義嗎?以及爲什麼它不適用於非壓縮Trie! – KGhatak

+0

@ kabanus - 非常感謝您的耐心;即使我開始聽起來不可能。順便說一下,你是說,對於一個壓縮的Trie,對於所有內部節點n,如果min(n的孩子數)> = 2^r那麼r是壓縮的trie的基數?也許我們可以首先定義這樣一個Trie的基數! – KGhatak

+0

我剛剛發現另一個很好的anwer:http://stackoverflow.com/questions/21204980/what-does-radix-mean-in-a-radix-tree-希望我更早看到了這一點。正如您所看到的,維護內部節點中所有可能的前綴所需的最小位數是基數。 – kabanus