0
Rust官方庫包含doubly linked list。但沒有單獨聯繫一個。爲什麼?爲什麼在Rust官方庫中沒有單獨鏈接的列表?
Rust官方庫包含doubly linked list。但沒有單獨聯繫一個。爲什麼?爲什麼在Rust官方庫中沒有單獨鏈接的列表?
大概是因爲沒有人打擾寫一個。至於爲什麼沒有人這樣做......
已經有一個雙向鏈表。 只有單個鏈接列表的實際優勢是每個節點使用一個較少的指針,這並不是那麼重要。如果空間使用率很重要,那麼您可能會使用Vec
或類似的數據結構。 Vec
的超額分配由每個節點的開銷(指針以及分配器開銷)平衡,特別是對於小項目(整數,指針等)。
此外,鏈接列表通常並不像人們可能認爲的那樣有用,因爲CS 102,Vec
等常常是更好的選擇。少數漸近較快的操作相對較少,因爲所有漸近平等的操作都會由於數據局部性而丟失,即使漸近式操作的速度更快,也需要令人驚訝的大n來克服數據局部性的缺點。
用某種多重指針類型實現的單鏈表允許像Haskell一樣持久化/共享尾部。 – huon
@dbaupp好點。我再次強制性地思考。 – delnan