找到 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。数组01234元素 1元素 2元素 3元素 4元素 5数组加倍后,大小为-0123456789元素 1元素 2元素 3元素 4元素 5元素 6元素 7元素 8元素 9元素 10要将大小为 n 的数组 arr(arr[0…n-1])的大小加倍。首先,我们必须创建一个大小为 m 的新数组。然后将 arr 中的 n 个元素复制到新数组中。最后,更改 arr 的值以指向新数组。要... 阅读更多

广告