握手引理和有趣的树属性 - DSA2024 年 8 月 28 日 | 3 分钟阅读 在本教程中,我们将学习 DSA 中的握手引理和一些有趣的树的性质。 握手引理究竟是什么? 握手引理是关于无向图的。在每个有限的无向网络中,具有奇数度数的顶点的数量总是偶数。(度数和公式是握手引理的来源,它也经常被称为握手引理)。 握手引理如何帮助树数据结构? 握手引理可用于证明以下令人惊叹的事实。 1) 在二叉树中,叶子节点的数量总是比有两个子节点的节点的数量多一个。 L = T + 1 L 是叶子节点的数量。 T 表示有两个子节点的内部节点的数量。 证明 令 T 表示有两个子节点的节点的数量。证明分为三种类型。 情况 1:因为只有一个节点,所以 T = 0 L = 1 的关系成立。 情况 2:根有两个子节点,这意味着根的度数为二。 情况 3:根有一个子节点,因此根的度数为一。 因此,在所有三种情况下都可以得到 T = L-1。让我们看另一个有趣的特性。 2) 无论节点有 0 个子节点还是 k 个子节点,k 叉树中的以下性质都成立。 L = (k - 1)*I + 1,其中 L 是叶子节点的数量。 I 表示内部节点的数量。 证明分为两种类型。 情况 1(根是叶子):树只有一个节点。对于单个节点,前面的表达式有效,因为 L = 1,I = 0。 情况 2(根是内部节点):在具有一个以上节点的树中,根总是内部节点。在这种情况下,可以使用握手引理来验证上述表达式。无环无向图就是一棵树。 树中边的总数等于节点数减一,即 |E| = L + I - 1。 除了根节点之外,指定类型树中的所有内部节点的度数均为 k + 1。根节点的度数为 k。所有叶子节点的度数均为一。将握手引理应用于这些树会得到以下关系。 因此,上述性质已通过握手引理得到证明。 下一个主题如何在单个数组中高效实现 k 个栈 |
问题陈述:我们有一个由 0 到 9 的数字组成的数组,它们代表一个数字。数组的第一个元素代表数字的最高有效位,数组的最后一个元素代表最低有效数字。因为这也是...
5 分钟阅读
引言 在字符串处理算法中,后缀数组至关重要,因为它们为各种与字符串相关的问题提供了有效的解决方案。为了获得最佳结果,必须尽可能有效地构建后缀数组。SA-IS(诱导排序的倾斜算法)是一种众所周知的实现……
阅读 4 分钟
设计一种支持常量时间插入、删除、搜索和 getRandom 的数据结构 设计一种允许常量时间插入、删除、搜索和随机访问的数据结构是一个有趣的计算机科学问题。获得这些活动的一致时间复杂度有时需要权衡...
5 分钟阅读
2-3 树 2-3 树与树相同,但它有一些不同的属性,例如任何节点可以有一个或两个值。因此,2-3 树中有两种类型的节点:单值节点 如果一个节点是单值的,那么它有两个……
阅读 4 分钟
一种名为二维二叉索引树(2D BIT)的复杂数据结构,通常称为 Fenwick 树,用于通过维护累积和或频率来快速更新和查询二维数组(矩阵)。2D BIT 将此概念扩展到二维场景,类似地...
阅读9分钟
数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。我们可以对给定的数组执行许多操作。但是,现在我们将解决将所有零移动……
5 分钟阅读
简介:生成所有子数组是计算机科学和编程中的一项基本技术,它在数据分析、算法和问题解决等许多领域都有应用。数组的连续部分称为子数组,并且可以通过多种方式生成所有可能的子数组……
阅读 3 分钟
引言:优先级队列是一种数据结构,它存储具有关联优先级的元素,并允许高效地检索具有最高(或最低)优先级的元素。虽然优先级队列有各种实现方法,但一种特别有趣且灵活的方法是使用双向……
7 分钟阅读
什么是 s? 区间树是一种强大的数据结构,在从计算几何到数据库系统等各种应用中起着至关重要的作用。这种专门的树结构旨在高效地存储和搜索区间,为解决涉及重叠问题提供了有价值的工具...
阅读 6 分钟
? 在我们深入研究可变和不可变数据结构类别之前,让我们首先简要讨论可变性和不可变性的概念。可变数据结构 可变数据类型是可以通过进一步修改或更改的数据类型...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India