找到 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,我们可以将它们合并成一个。因此,在合并后,所有元素都将存在,除了被删除的那个。

广告