Trie

在計算機科學中 ， trie ， 又稱前綴樹或字典樹 ， 是一種有序樹 ， 用於保存關聯數組 ， 其中的鍵通常是字符串 。 與二叉查找樹不同 ， 鍵不是直接保存在節點中 ， 而是由節點在樹中的位置決定 。 一個節點的所有子孫都有相同的前綴 ， 也就是這個節點對應的字符串 ， 而根節點對應空字符串 。 一般情況下 ， 不是所有的節點都有對應的值 ， 只有葉子節點和部分內部節點所對應的鍵纔有相關的值 。 Trie這個術語來自於retrieval 。 根據詞源學 ， trie的發明者Edward Fredkin把它讀作 [ˈtriː] " tree " 。 但是 ， 其他作者把它讀作 [ˈtraɪ] " try " 。 在圖示中 ， 鍵標註在節點中 ， 值標註在節點之下 。 每一個完整的英文單詞對應一個特定的整數 。 Trie可以看作是一個確定有限狀態自動機 ， 儘管邊上的符號一般是隱含在分支的順序中的 。 鍵不需要被顯式地保存在節點中 。 圖示中標註出完整的單詞 ， 只是爲了演示trie的原理 。 trie中的鍵通常是字符串 ， 但也可以是其它的結構 。 trie的算法可以很容易地修改爲處理其它結構的有序序列 ， 比如一串數字或者形狀的排列 。 比如 ， bitwise trie中的鍵是一串位元 ， 可以用於表示整數或者內存地址 。