找到 210 篇文章 相关的算法分析

DFS 和 BFS 在数据结构中的应用

Arnab Chakraborty
更新于 2019-08-27 12:25:37

18K+ 浏览量

在这里,我们将了解图的 DFS 和 BFS 算法的不同应用。DFS 或深度优先搜索在不同的地方使用。一些常见的用途是 -如果我们在无权图上执行 DFS,那么它将为所有对最短路径树创建最小生成树我们可以使用 DFS 检测图中的循环。如果我们在 BFS 期间获得一条后向边,那么一定存在一个循环。使用 DFS,我们可以在两个给定顶点 u 和 v 之间找到路径。可以使用拓扑排序来安排给定作业之间依赖关系的作业。拓扑排序 ... 阅读更多

图及其遍历算法

Arnab Chakraborty
更新于 2023-09-08 23:02:20

46K+ 浏览量

在本节中,我们将了解什么是图数据结构,以及它的遍历算法。图是一种非线性数据结构。它由一些节点及其连接的边组成。边可以是有向的或无向的。该图可以表示为 G(V, E)。以下图可以表示为 G({A, B, C, D, E}, {(A, B), (B, D), (D, E), (B, C), (C, A)})图有两种类型的遍历算法。它们被称为广度优先搜索和深度优先搜索。广度优先搜索 (BFS)广度优先搜索 (BFS) 遍历是一种算法,... 阅读更多

数据结构中的二叉搜索树

Arnab Chakraborty
更新于 2019-08-27 12:13:24

602 浏览量

二叉搜索树是具有某些属性的二叉树。这些属性如下所示 -每个二叉搜索树都是一个二叉树每个左孩子都将持有小于根的值每个右孩子都将持有大于根的值理想的二叉搜索树不会重复相同的数值。假设我们有一棵这样的树 -这棵树是一棵二叉搜索树。它遵循所有提到的属性。如果我们以中序遍历模式遍历元素,我们可以得到 5、8、10、15、16、20、23。让我们看一段代码来了解如何在... 阅读更多

数据结构中的先序树遍历

Arnab Chakraborty
更新于 2019-08-27 12:07:28

428 浏览量

在本节中,我们将了解二叉搜索树的先序遍历技术(递归)。假设我们有一棵这样的树 -遍历顺序将如下所示:10、5、8、16、15、20、23算法先序遍历(根):开始    如果根不为空,则       打印根的值       先序遍历(根的左子树)       先序遍历(根的右子树)    结束如果结束示例 实时演示#include using namespace std; class node{    public:       int h_left, h_right, bf, value;       node *left, *right; }; class tree{    private:       node *get_node(int key);   ... 阅读更多

数据结构中的后序树遍历

Arnab Chakraborty
更新于 2020-01-21 12:17:37

386 浏览量

在本节中,我们将了解二叉搜索树的后序遍历技术(递归)。假设我们有一棵这样的树 -遍历顺序将如下所示:8、5、15、23、20、16、10算法后序遍历(根):开始    如果根不为空,则       后序遍历(根的左子树)       后序遍历(根的右子树)       打印根的值    结束如果结束示例 实时演示#include using namespace std; class node{    public:       int h_left, h_right, bf, value;       node *left, *right; }; class tree{    private:       node *get_node(int key);   ... 阅读更多

数据结构中的二叉树遍历

Arnab Chakraborty
更新于 2019-08-27 11:23:47

929 浏览量

在本节中,我们将了解不同的遍历算法来遍历二叉搜索树中存在的键。这些遍历是中序遍历、先序遍历、后序遍历和层序遍历。假设我们有一棵这样的树 -中序遍历顺序将如下所示 - 5 8 10 15 16 20 23先序遍历顺序将如下所示 - 10 5 8 16 15 20 23后序遍历顺序将如下所示 - 8 5 15 23 20 16 10层序遍历顺序将如下所示 - 10、5、16、8、15、20、23算法中序遍历(根):开始    如果根不为空... 阅读更多

数据结构中的二叉树及其属性

Arnab Chakraborty
更新于 2019-08-27 11:04:14

4K+ 浏览量

在本节中,我们将了解二叉树数据结构的一些重要属性。假设我们有一棵这样的二叉树。一些属性是 -第“l”层的节点最大数量为 $2^{l-1}$ 。这里层级是从根节点到节点的路径上的节点数,包括根节点本身。我们认为根节点的层级为 1。高度为 h 的二叉树中存在的节点最大数量为 $2^{h}-1$ 。这里高度是从根节点到叶节点路径上的最大节点数。这里我们认为只有一个... 阅读更多

数据结构中的二叉树表示

Arnab Chakraborty
更新于 2019-08-27 10:47:48

15K+ 浏览量

在这里,我们将了解如何在计算机内存中表示二叉树。有两种不同的表示方法。这些是使用数组和使用链表。假设我们有一棵这样的树 -数组表示通过使用层序方式扫描元素来存储树数据。因此,它逐层存储节点。如果缺少某些元素,则为其留出空白空间。上述树的表示如下所示 -12345678910111213141510516-81520-------23索引 1 存储根节点,它有两个子节点 5 和 16,它们位于位置 2 和 3。一些子节点是... 阅读更多

数据结构中数组上的操作

Arnab Chakraborty
更新于 2019-08-27 10:38:25

689 浏览量

在这里,我们将了解数组数据结构的一些基本操作。这些操作是 -遍历插入删除搜索更新遍历是扫描数组的所有元素。插入操作是在数组的给定位置添加一些元素,删除是从数组中删除元素并在删除后更新其他元素的相应位置。搜索是在数组中查找存在的某个元素,更新是在给定位置更新元素的值。让我们看一个 C++ 示例代码以更好地理解。示例 实时演示#include #include using namespace std; main(){    vector arr;    //插入元素 ... 阅读更多

数据结构中的均摊时间复杂度

Arnab Chakraborty
更新于 2019-08-27 09:15:10

897 浏览量

均摊分析这种分析方法用于处理某些操作偶尔会非常慢,但大多数频繁执行的操作速度很快的情况。在数据结构中,我们经常需要对哈希表、不相交集等进行均摊分析。在哈希表中,大部分情况下搜索的时间复杂度为 O(1),但有时会执行 O(n) 的操作。当我们想要在哈希表中搜索或插入元素时,大多数情况下都是常数时间操作,但当发生冲突时,需要花费 O(n) 的时间进行冲突解决。聚合方法聚合方法用于... 阅读更多

广告