找到关于算法的510篇文章

数据结构中加权图的表示

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++ 中,我们…… 阅读更多

数据结构中的稀疏矩阵

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

5K+ 次浏览

在本节中,我们将了解什么是稀疏矩阵以及如何将其表示在内存中。因此,如果矩阵的大多数元素都是 0,则该矩阵将是稀疏矩阵。另一个定义是,非零元素最多为 1/3 (大约 m x n 的 30%) 的矩阵被称为稀疏矩阵。我们在计算机内存中使用矩阵来以有效的方式执行某些操作。但是,如果矩阵本质上是稀疏的,它可能会帮助我们有效地执行操作,但它将在内存中占用更大的空间。这些空间没有…… 阅读更多

数据结构中的不规则数组

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

622 次浏览

在这里,我们将了解不规则数组。在讨论不规则数组之前,我们必须知道什么是规则数组。规则数组是这样的数组,其中每一行的列数相同。或者换句话说,当每一行都包含相同数量的元素时,那就是规则数组。以下表示是一个规则数组。从规则数组的定义中,我们可以理解什么是规则数组。因此,在不规则数组中,每一行可能包含也可能不包含相同数量的元素。这种不规则数组也可以表示…… 阅读更多

数据结构中数组的数组表示

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

622 次浏览

在本节中,我们将看到多维数组的另一种表示。在这里,我们将看到数组的数组表示。在这种形式中,我们有一个数组,它保存多个数组的起始地址。表示将如下所示。这是一个大小为 [7 x 8] 的二维数组 x。每一行都表示为一个单一的单维数组。初始数组保存这些单个数组的地址。它们是地址数组,所以我们可以说它是一个指针数组。每个指针都保存另一个数组的地址。创建这种…… 阅读更多

数据结构中的异构数组

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

1K+ 次浏览

正如我们所知,数组在定义上是同构的。因此,我们必须在数组中放置相同类型的数据。但是,如果我们想要存储不同类型的数据,那么有什么技巧呢?在像 C 这样的旧语言中,我们可以使用联合来人工地将不同类型合并为一种类型。然后,我们可以在这种新类型上定义一个数组。这里,数组元素实际包含的对象类型由一个标签确定。让我们看看这样的结构 - struct Vehicle{ int id; union { Bus … 阅读更多

数据结构中的数组加倍

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

2K+ 次浏览

有时我们使用动态内存分配创建数组。如果使用动态内存分配技术分配数组,我们可以通过执行一些操作来使数组的大小加倍。假设初始数组大小为 5。数组 0 1 2 3 4 元素 元素 1 元素 2 元素 3 元素 4 元素 5 数组加倍后,大小为 - 0 1 2 3 4 5 6 7 8 9 元素 1 元素 2 元素 3 元素 4 元素 5 元素 6 元素 7 元素 8 元素 9 元素 10 要将大小为 n 的数组 arr (arr[0…n-1]) 的大小加倍。首先,我们必须创建一个大小为 m 的新数组。然后将 n 个元素从 arr 复制到新数组。最后,更改 arr 的值以指向新数组。要…… 阅读更多

广告