可持久化數據結構

在計算機編程中 ， 可持久化數據結構 （ Persistent data structure ） 是一種能夠在修改之後其保留歷史版本 （ 即可以在保留原來數據的基礎上進行修改 — — 比如增添 、 刪除 、 賦值 ） 的數據結構 。 這種數據結構實際上是不可變對象 ， 因爲相關操作不會直接修改被保存的數據 ， 而是會在原版本上產生一個新分支 。 這個術語是在1986年Driscoll 、 Sarnak 、 Sleator和Tarjans的文章中提出的 。 如果一個數據結構包括當前版本在內的所有歷史版本都可以被訪問 ， 但只有當前版本可以被修改 ， 那麼該數據結構就是部分可持久化數據結構 。 如果該數據結構的所有版本都可以被查詢或修改 ， 那麼這種數據結構就是完全可持久化數據結構 。 如果存在能夠創建基於兩個歷史版本的新版本 （ 即合併兩個版本 meld （ 澆鑄 （ ？ ） 混合 （ ？ ） ） 或 merge （ 合併 ） 操作 ） ， 那麼這種數據結構就是可匯合的可持久化數據結構 。 不可持久化的數據結構被稱爲短暫性數據結構 。 這些類型的數據結構在邏輯編程和函數式編程之中非常常見 。