我閱讀的內容越多,出於某種原因,我越感到困惑。
現在讓我困惑的是:
我已經閱讀了大約2種類型的實現。trie的實現中的空間差異
- 使用數組來表示字符(不存儲所述字符 本身),並在每一個節點也將索引存儲到實際字(如果 我們達到了一個字)。
- 使用存儲字符,並在每個節點的末尾 使用一個布爾值來確定,如果我們達到了一個字去 沿着這條路
在第一種情況下,它沒有被提及,但它節點Collection
似乎我們必須實際保留所有的字典單詞(因爲我們間接引用它們)。所以我們有array_size*numberOfNodes*lengthOfword + size of dictionary processed
在後一種情況下,我們不需要字典,因爲字符直接存儲在樹中。所以在我看來,第二個實現更節省空間。但我不確定多少。
我的理解在實現方面是否正確,是否有具體的理由來選擇其中一個呢?我們又如何計算第二種情況的空間需求?
通過其他方式(例如使用散列字典提供字符查找的維基百科示例),嘗試顯示的大多數示例都可以通過其他方式更加高效地實現。例如,在大型查找表中,嘗試提供明確勝利的地方是,其中單個詞是節點鍵。他們也可能爲稀疏表格提供勝利。 – parsifal