找到 210 篇文章 相關演算法分析

B 樹在資料結構中的刪除

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:31:37

1K+ 瀏覽量

在這裡,我們將瞭解如何在 B 樹中執行節點的刪除操作。假設我們有一個如下所示的 B 樹:B 樹示例 - 刪除操作分為兩個部分。首先,我們需要找到要刪除的元素。這個策略類似於查詢操作。現在,對於刪除操作,我們需要注意一些規則。一個節點必須至少包含 m/2 個元素。因此,如果我們刪除一個元素,並且剩餘元素少於 m-1 個,則它將進行自我調整。如果整個節點都被刪除,則其子節點將被合併,如果其大小與 m 相同,則將其拆分... 閱讀更多

B 樹在資料結構中的插入

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:25:53

701 瀏覽量

在這裡,我們將瞭解如何在 B 樹中執行插入操作。假設我們有一個如下所示的 B 樹:B 樹示例 - 要插入一個元素,其思路與 BST 非常相似,但我們需要遵循一些規則。每個節點有 m 個子節點和 m-1 個元素。如果我們在一個節點中插入一個元素,則存在兩種情況。如果該節點的元素少於 m-1 個,則新元素將直接插入到該節點中。如果它有 m-1 個元素,則透過獲取所有元素以及要插入的元素,然後取... 閱讀更多

B 樹在資料結構中的查詢

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:27:13

592 瀏覽量

在這裡,我們將瞭解如何在 B 樹中執行搜尋操作。B 樹搜尋也稱為 B 樹查詢。假設我們有一個如下所示的 B 樹:B 樹示例 - 搜尋技術與二叉搜尋樹非常相似。假設我們想從上面的樹中搜索 66。因此,我們將從根節點開始,現在 66 大於根節點元素 46。因此,我們將移動到根節點的右子節點。然後右子節點有多個元素。這些元素是有序的,它們是 [56, 81]。我們的目標鍵大於 56,... 閱讀更多

區間堆在資料結構中的應用

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:19:04

1K+ 瀏覽量

在這裡,我們將瞭解什麼是區間堆。區間堆是完全二叉樹,其中除最後一個節點外,每個節點都包含兩個元素。假設節點 P 中兩個元素的優先順序分別為 'a' 和 'b'。這裡我們考慮 a ≤ b。我們說節點 P 表示閉區間 [a, b]。這裡 a 是 P 區間的左端點,b 是右端點。[c, d] 包含在區間 [a, b] 中當且僅當 a ≤ c ≤ d ≤ b。在一個... 閱讀更多

最大加權左傾樹操作在資料結構中的應用

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:18:05

163 瀏覽量

在這裡,我們將瞭解不同的最大加權左傾樹操作。HBLT 具有不同的操作,如插入、刪除和初始化。它們與 WBLT 也非常相似。但是,合併操作可以在單個自上而下的遍歷中完成。WBLT 可以進行單次遍歷合併操作。因為我們可以在向下遍歷的過程中找到 w 值。我們可以更新 w 值並根據需要交換子樹。對於 HBLT,我們無法在向下遍歷樹的過程中找到 s 值。由於合併可以在單個自上而下的遍歷中完成,則插入和刪除... 閱讀更多

加權左傾樹在資料結構中的應用

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:15:01

1K+ 瀏覽量

在這裡,我們將瞭解左傾樹的另一種變體。在這裡,我們將考慮子樹中的節點數量,而不是從根節點到外部節點的最短路徑的長度。在這裡,我們將定義節點 x 的權重 w(x),作為以 x 為根的子樹中的內部節點的數量。如果 x 是外部節點,則權重為 0。如果 x 是內部節點,則權重比其子節點權重之和多 1。這是一個加權左傾樹 (WBLT) 的示例:假設二叉樹是... 閱讀更多

從最大 HBLT 中刪除任意元素在資料結構中的應用

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:13:14

166 瀏覽量

從最大或最小 HBLT 中刪除任意節點不是優先佇列或 HBLT 的標準操作。如果我們想從 HBLT 中刪除一個節點,例如 K,我們需要遵循以下規則。將以 K 為根的子樹從樹中分離,並用 K 節點子樹的合併結果替換它。更新從 K 到根節點的路徑上的 s 值,並根據需要交換此路徑上的子樹以保持 HBLT 的屬性。要更新從 K 到根節點的 s 值,我們需要每個節點的父節點指標。此操作用於更新 s... 閱讀更多

在資料結構中在一個數組中儲存多個列表

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:11:51

575 瀏覽量

當陣列儲存隨時間變化的資料時,陣列表示法基本上會浪費空間。為了儲存一些資料,我們分配一些足夠大的空間來在一個數組中儲存多個值。假設我們使用陣列加倍標準來增加陣列的大小。假設當前陣列大小為 8192。它已滿。因此,我們需要使用陣列加倍技術來增加它。因此,新的陣列大小將為 16384。然後將 8192 個元素從舊陣列複製到新陣列,然後釋放舊陣列。現在我們可以意識到,在釋放... 閱讀更多

合併兩個最大 HBLT 在資料結構中的應用

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:10:20

231 瀏覽量

合併策略很容易使用遞迴來完成。假設 A 和 B 是兩個將要合併的 HBLT。如果其中一個為空,則只需將另一個作為最終結果。如果沒有空 HBLT,則我們需要比較兩個根節點中的元素。具有較大元素的根節點將成為合併後的 HBLT 的根節點。假設 A 具有較大的根節點。並且它的左子樹是 L。假設 C 是合併 A 的右子樹和 HBLT B 的結果的最大 HBLT。最終的 HBLT 將以 A 作為根節點,... 閱讀更多

從最大 HBLT 中刪除最大元素在資料結構中的應用

Arnab Chakraborty
更新於 2020 年 8 月 11 日 07:07:28

136 瀏覽量

在最大 HBLT 中,根節點位於根位置。如果根節點被刪除,則兩個最大 HBLT(即左子樹和右子樹)將被分離。透過再次合併這兩個最大 HBLT,我們可以將它們合併成一個。因此,在合併後,所有元素都將存在,除了被刪除的那個。

廣告