找到 1861 篇文章 关于数据结构

斐波那契堆在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 09:10:31

1K+ 阅读量

与二项堆类似,斐波那契堆也是一组树的集合。它们松散地基于二项堆。与二项堆中的树不同,斐波那契堆中的树是根树,但无序。斐波那契堆中每个节点 x 都包含一个指向其父节点的指针 p[x],以及一个指向其任意一个子节点的指针 child[x]。x 的子节点通过一个称为 x 的子节点列表的循环双向链表链接在一起。子节点列表中的每个子节点 y 都包含指针 left[y] 和 right[y],分别指向 y 的左右兄弟节点。如果节点 y 只是... 阅读更多

二项堆在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 09:09:08

3K+ 阅读量

二项堆是二项树的集合。二项树 Bk 是一个递归定义的有序树。二项树 B0 由单个节点组成。二项树 Bk 由两个二项树 Bk-1 组成。它们链接在一起。其中一个的根是另一个根的最左子节点。一些二项堆如下所示:二项树的一些属性如下:Bk 二项树有 2k 个节点。树的高度为 k在深度 i 处正好有 $$\left(\begin{array}{c}k\ j\end{array}\right)$$ 个节点,对于 0 到 k 范围内的所有 i二项堆一个二项堆... 阅读更多

欧拉图和哈密顿图在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 09:06:22

1K+ 阅读量

在本节中,我们将了解欧拉图和哈密顿图。但在深入探讨之前,我们首先需要了解图中的轨迹是什么。假设我们有一个如下所示的图:轨迹是一条路径,它是一系列边 (v1, v2)、(v2, v3)、…、(vk - 1, vk),其中所有顶点 (v1, v2、…、vk) 可能不都是不同的,但所有边都是不同的。在这个例子中,一条轨迹是 {(B, A), (A, C), (C, D), (D, A), (A, F)} 这是一个轨迹。但这不被认为是简单的... 阅读更多

有向图中的深度优先搜索在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 09:04:54

550 阅读量

图的深度优先搜索类似。但是对于有向图或有向图,我们可以找到一些类型的边。DFS 算法形成一棵称为 DFS 树的树。有四种类型的边,称为:树边 (T) - 存在于 DFS 树中的边前向边 (F) - 与一组树边平行。(从较小的 DFS 编号到较大的 DFS 编号,以及较大的 DFS 完成编号到较小的 DFS 完成编号)后向边 (B) - 从较大的 DFS 编号到较小的 DFS 编号,以及较小的 DFS 完成编号到较大的 DFS 完成编号。交叉... 阅读更多

图的搜索在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 09:03:06

2K+ 阅读量

我们知道图是一种非线性数据结构。在这种数据结构中,我们将一些值放入节点中,并且节点通过不同的边连接在一起。由于我们可以将数据存储到图结构中,因此我们还需要从图中搜索元素以使用它们。对于图中的搜索,有两种不同的方法。广度优先搜索和深度优先搜索技术。广度优先搜索 (BFS)广度优先搜索 (BFS) 遍历是一种算法,用于访问给定图的所有节点。在此遍历算法中,选择一个节点并... 阅读更多

加权图的表示在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 09:01:23

17K+ 阅读量

众所周知,图可以分为不同的变体。它们可以是有向的或无向的,也可以是加权的或非加权的。在这里,我们将了解如何在内存中表示加权图。考虑以下图表:邻接矩阵表示要使用邻接矩阵形式存储加权图,我们将矩阵称为成本矩阵。此处位置 M[i, j] 的每个单元格都包含从边 i 到 j 的权重。如果边不存在,则为无穷大。对于相同的节点,它将为 0.0∞63∞30∞∞∞∞∞02∞∞110∞∞4∞20邻接表表示在邻接表中,每个元素... 阅读更多

堆的插入和删除在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 08:59:32

5K+ 阅读量

在这里,我们将了解如何从二叉堆数据结构中插入和删除元素。假设初始树如下所示:插入算法insert(heap, n, item):开始   如果堆已满,则退出   否则      n := n + 1      对于 i := n,i > 1,在每次迭代中设置 i := i / 2,执行         如果 item

二叉堆在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 08:46:41

389 阅读量

堆或二叉堆是平衡二叉树数据结构的一种特殊情况。这是一个完整的二叉树结构。因此,最多到 l-1 层它是完整的,而在 l 层,所有节点都来自左侧。这里根节点键与其子节点进行比较并进行相应排列。如果 a 有子节点 b,则-key(a) ≥ key(b)由于父节点的值大于子节点的值,因此此属性生成最大堆。根据此标准,堆可以分为两种类型:最大堆和最小堆。这些分别是最大堆和最小堆的示例... 阅读更多

线索二叉树在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 08:39:09

3K+ 阅读量

在这里,我们将了解线索二叉树数据结构。我们知道二叉树节点最多可以有两个子节点。但是,如果它们只有一个子节点或没有子节点,则链接列表表示中的链接部分将保持为空。使用线索二叉树表示,我们可以通过创建一些线程来重用这些空链接。如果一个节点有一些空闲的左子节点或右子节点区域,则将用作线程。线索二叉树有两种类型。单线程树或完全线程二叉树。在单线程模式下,还有另外两种变化。... 阅读更多

广义表在数据结构中的应用

Arnab Chakraborty
更新于 2020年8月10日 08:37:45

5K+ 阅读量

在本节中,我们将了解广义表。广义表可以定义如下:广义表 L 是 n 个元素(n ≥ 0)的有限序列。元素 ei 或者是原子(单个元素),或者是另一个广义表。不是原子的元素 ei 将是 L 的子列表。假设 L 是 ((A, B, C), ((D, E), F), G)。这里 L 有三个元素子列表 (A, B, C)、子列表 ((D, E), F) 和原子 G。再次子列表 ((D, E), F) 有两个元素一个子列表 (D, E) 和原子 F。在 C++ 中,我们... 阅读更多

广告