雖然很難找到「基數樹」的一致定義,但大多數公認的基數樹定義表明它是一個壓縮的前綴樹。在這種情況下,我很難理解的是「基數」一詞的重要性。爲什麼壓縮前綴樹如此命名(即基數樹),而非壓縮的前綴樹不叫基數樹?基數中「基數」一詞的含義
回答
維基百科可以回答這個問題,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。
希望澄清!
@ kabanus - 我無法理解_「每個內部節點至少是基數r」_。你會詳細說明它的含義嗎?以及爲什麼它不適用於非壓縮Trie! – KGhatak
@ kabanus - 非常感謝您的耐心;即使我開始聽起來不可能。順便說一下,你是說,對於一個壓縮的Trie,對於所有內部節點n,如果min(n的孩子數)> = 2^r那麼r是壓縮的trie的基數?也許我們可以首先定義這樣一個Trie的基數! – KGhatak
我剛剛發現另一個很好的anwer:http://stackoverflow.com/questions/21204980/what-does-radix-mean-in-a-radix-tree-希望我更早看到了這一點。正如您所看到的,維護內部節點中所有可能的前綴所需的最小位數是基數。 – kabanus
- 1. 基數在基數樹中的含義是什麼?
- 2. 排序和基數在mysql索引中的含義是什麼?
- 3. ::基本部分ActiveRecord :: Base中的含義
- 4. 基於NSNumber的詞典排序數組
- 5. 基於第一個詞省略數組中的元素
- 6. 定義基於一系列數字
- 7. 小數基數的標準基數?
- 8. 基於詞典篩選數據表
- 9. PostgreSQL中的基數
- 10. 函數含義,它是如何刪除零表達基因的?
- 11. 基於Python中基數的總和2.7
- 12. 模擬ulltoa()的基數/ 36基數
- 13. 什麼是基於邊緣和基於層次的含義?
- 14. 實現NodeEntity基類,標籤的含義
- 15. 基於謂詞函數的數據框的變化列(dplyr :: mutate_if)
- 16. 如何使用FFT將一個非常大的整數從一個基數/基數轉換爲另一個基數/基數?
- 17. 數據基數
- 18. 尋找同義詞和傾斜詞的基本形式
- 19. 基於表中包含的
- 20. 分割基於一組特定的詞
- 21. 將DIV在含有DIV基於數值
- 22. PHP包含基於URL參數
- 23. 基於Python中的詞典值從字符串數組中刪除單詞?
- 24. 基數排序:「基數」在基數排序中意味着什麼?
- 25. 「基本數據類型」和「內置數據類型」的含義是否相同?
- 26. 使用基於另一個謂詞的謂詞的謂詞過濾數組,這是謂詞的關鍵
- 27. 未定義的函數Javascript(基本)
- 28. 定義RDF語句的基數
- 29. 什麼是基數的定義SQL
- 30. 從基數10轉換爲基數2
對於我的猜測,沒有一個好的答案。我的意思是,特里樹與基數樹一樣有「基數」。然而,有人使用這個術語,並保持這種方式。更重要的是,基數樹是一個樹的壓縮版本,這就是爲什麼有些人使用術語壓縮前綴樹或壓縮樹。另外我使用術語PATRICIA來調用相同的數據結構。然而,有一些辯論,根據維基百科PATRICIA是一種特殊類型的基數樹,用於存儲二進制字符串。 –
我最終找到了答案,並將我的理解作爲對另一個問題線索的回覆發佈了http://stackoverflow.com/questions/14708134/what-is-the-difference-between-trie-and-radix-trie-data - 結構/ 40567517#40567517 – KGhatak