找到关于数据结构的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++中,我们……阅读更多

广告