在虛擬樹中,一些邊被視為實線,一些被視為虛線。通常的伸展操作僅在實線樹中執行。為了在虛擬樹中的節點 y 上進行伸展操作,實現了以下方法。該演算法檢視樹三次,每次遍歷一次,並對其進行更改。在第一次遍歷中,僅在實線樹中進行伸展操作,從節點 y 開始,從 y 到整個樹根的路徑變為虛線。此路徑透過拼接變為實線。現在,在節點 y 上進行最終的伸展操作將使 y 成為樹的根。… 閱讀更多
靜態手指定理 - 假設 f 被視為稱為手指的特定元素。然後,以下表達式是伸展序列成本的上限 O(m + n log(n) + Σ Sum log (|f - i[j]| + 1))j注意 - |f-i| 表示專案在專案 i 和手指之間的對稱排序中的距離。其中 m 表示對最多包含 n 個節點的樹進行更新或訪問操作的次數。觀察到,至少在攤銷意義上,在從未超過 n 的樹上進行前 m 次操作所需的時間… 閱讀更多
動態最優性猜想除了伸展樹的已證明效能保證之外,還有一個未經證實的猜想引起了極大的興趣。動態最優性猜想表示此猜想。設任何二叉搜尋樹演算法(如 B)透過遍歷從根到 y 的路徑來訪問元素 y,其成本為 d(y)+1,並且在訪問之間可以在樹中進行任何旋轉,每次旋轉的成本為 1。設 B(s) 為 B 執行訪問序列 s 的成本。那麼伸展樹執行相同訪問的成本為 O[n+B(s)]。有… 閱讀更多
在跳錶中,可以從包含元素 b 的節點開始對元素 a 進行手指搜尋,只需從此處繼續搜尋 a 即可。請注意,如果 a < b,則搜尋向後進行,如果 a > b,則搜尋向前進行。向後情況與跳錶中的正常搜尋對稱,但向前情況實際上更復雜。通常,跳錶中的搜尋預計會很快,因為列表開頭的哨兵被視為最高的節點。但是,我們的手指可能與… 閱讀更多
資料結構上的手指搜尋被定義為結構支援的任何搜尋操作的擴充套件,其中給出了對資料結構中元素的引用(手指)以及查詢。雖然元素的搜尋時間最常表示為資料結構中元素數量的函式,但手指搜尋時間被視為元素與手指之間距離的函式。在一組 m 個元素中,兩個元素 a 和 b 之間的距離 d(a, b) 是它們在秩中的差值。如果元素 a 和… 閱讀更多