树形等数据结构

     

Java中在二叉搜索树中查找节点的父节点

24 8K

二叉搜索树(BST)是一种帮助我们有效解决现实世界问题的数据结构。什么是二叉搜索树?BST 是一棵树,其中每个节点最多指向两个节点,通常称为左子节点和右子节点。此外,每个节点的值都大于左子节点且小于右.

Java中实现TreeMap缓存驱逐策略

26 5K

为了提高应用程序速度,缓存是将经常访问的数据存储在内存中的一种方法。当缓存填满时,缓存逐出策略会决定必须删除哪些内容。Java 的 TreeMap 提供了排序映射实现,它可用于创建具有独特驱逐策略的缓.

空间结构性胜过时间性

58

这篇文章讨论了在项目开发中,人们通常关注时间节点,但作者认为应该更关注项目的结构。文章指出,项目的结构和复杂度对于解决问题至关重要,而人们往往忽视了这一点。作者提出了“自然选择我们的最后期限”的观点,.

Python中使用给定的前缀和后缀在字典中搜索字符串

28 5K

在本教程中,我们将编写 Python 程序来搜索字典中具有给定前缀和后缀的字符串。我们给出一个数组,由 N 个字符串和 Q 个查询组成,形式为两个字符串前缀和后缀。我们的任务是获取给定数组中具有给定前.

Python中预排序二叉搜索树的叶节点

32 7K
二叉树是一种包含不同节点的二叉数据结构,其中每个节点最多有两个子节点。这些节点遵循一些属性,包括: 二叉树的左节点的值小于根节点的值。 二叉树的右节点的值比根节点的值大。 所有子节点都必须遵循上述属性.

Python中使用常量额外空间计算 BST 中的第 K 大元素

34 5K
二叉搜索树BST是一种二进制数据结构,包含具有一些属性的各种节点,包括: 左子树节点小于根节点。 右子树节点比根节点多。 树节点的每个节点的子节点形成二叉搜索树。 问题陈述我们需要找到现有二叉搜索树中.

Python中实现Treap中的查找、插入和删除

40 9K

Treap 是一种特殊且有效的数据结构,结合了最大堆和二叉搜索树 (BST) 的品质。 Treap 中的每个节点都保留两个键值:一个用于保证堆属性,另一个用于维护顺序,就像 BST 一样。堆属性通常是.

恰好有K个素数的子树

34 3K

给定一棵有N 个节点和 (N – 1) 条边的树,其中节点的值从 1 到 N,根节点为 1。任务是确定给定树中是否存在恰好包含 K 的子树素数节点。解决思路: 使用深度优先搜索(DFS)来遍历树,计算.

C++ 中的 Trie 数据结构

56 7K

在本文中,我们将讨论C++ 中的trie 数据结构及其属性、操作和示例。Trie 数据结构是一种多路树,用于存储不同的字符串。每个字符串由存储在树状结构(即Trie 数据结构)中的字符组成。它也称为基.

使用Trie数据结构实现搜索自动完成功能

158 5K
本文旨在讨论使用 Java 的搜索自动完成的低级实现,将Trie在用例中使用数据结构。这是一个示例TrieNode类:class TrieNode{    Map<Character,TrieNode.

解码数据库架构:揭示表结构及其意义

75 4K

在复杂的数据管理领域,数据库表的结构是组织和存储信息的支柱。这种探索深入研究了表结构的本质,揭示了它们的复杂性,并了解它们在高效数据管理中的关键作用。表结构在数据库管理领域,信息的基本构建块位于复杂的.

动态规划与分而治之比较

80 4K

动态规划(Dynamic Programming)和分而治之(Divide and Conquer)都是解决问题的算法设计策略,但它们在解决问题的方式和应用场景上有一些不同之处。动态规划(Dynami.

树数据结构面试

92 5K

树是计算机科学的基础结构,是众多算法和数据表示的支柱。什么是树?树数据结构 是一种分层数据结构,其中称为节点的元素集合通过边相互连接,使得任何两个节点之间都存在一条路径。树数据结构中的基本术语: 父节.

从给定树的任何节点到所有其他节点的最大距离的最小值

45 6K

给定一棵具有N个顶点和N-1 个边(由 2D 数组Edges[]表示)的树,任务是找到从任意节点到树的所有其他节点的最大距离中的最小值。例子:输入: N = 4, Edges[] = { {1, 2}.

最大化所有人的出行距离总和

52 7K

最大化您的旅行计划中所有人的旅行距离总和。一个人的出行距离是指他所居住的城市与他所前往的城市之间的距离。旅行者在旅行时总是选择最短路线。问题陈述:给定一个位置列表(代表人们的位置),找到使所有人的总旅.

Rust实现线段树

86 2K

线段树是一种数据结构,可用于有效存储和查询有关数组中范围的信息。它是一个平衡二叉树,其中每个节点代表数组的一个范围并存储有关该范围的一些聚合信息。线段树可用于支持各种操作,例如查找范围内的最小或最大 .

大 O(N^2) 复杂度意味着什么?

64 6K

在本文中,我们将探讨大 O(N^2) 复杂度的概念,这是算法分析中的一个关键指标。理解 O(N^2) 的含义对于评估算法的效率至关重要,尤其是那些涉及嵌套循环的算法。我们探索时间和空间需求二次增长的影.

Java和Python中的Alpha-Beta剪枝算法

64 7K

Alpha-beta 剪枝是一种用于博弈论和决策问题的强大算法,用于优化搜索过程并显着减少评估的节点数量。它在具有较大状态空间的游戏中特别有效,例如国际象棋或井字棋。在本节中,我们将探讨 alpha-.

Java和JavaScript中Aho-Corasick算法实现

120 17K

Aho-Corasick 算法 是一种功能强大的字符串搜索算法,可以有效识别给定文本中多个模式的出现。该算法由 Alfred V. Aho 和 Margaret J. Corasick 于 1975 .

Java 中不同类型的递归

89 10K

函数或方法调用自身的过程称为递归。递归是 Java 中的突出主题之一。在本教程中,我们将讨论 Java 中不同类型的递归。递归类型递归主要有两种类型:1)直接递归直接递归意味着方法直接调用自身。直接递.

可视化Postgres B-Tree索引的小工具

966 1 2K
可以使用此工具可视化您的索引的内部结构。点击标题它需要 python3.6.*。您还必须安装 pageinspect ( https://www.postgresql.org/docs/10/stat.

数据科学的 5 个图算法

873 3K

图分析是未来!我们已经非常熟悉 Pandas 或 SQL 或任何其他关系数据库,这导致:我们习惯于在数据表的“记录行”中查看分析我们的产品用户,并将他们的属性作为列。但现实世界真的是这样吗?在互联世界.

使用Go泛型将Google的B-Tree性能提升40%

948

有很多理由对 Go 中的泛型感到兴奋。在这篇博文中,我将展示如何使用泛型,在已经优化好的包Google B-Tree实现中获得 40% 的性能提升。B树是一种自平衡树。就这篇博文而言,说它是一个集合就.

AVL(平衡二叉搜索树) - Mahfuzur

670 3K

在最好的情况下,BST (二叉搜索树 BST 的插入、删除和查找操作)可以提供 O(log n) 的复杂度,但在最坏的情况下,这给我们 O(n) 的复杂度。如果输入数据按任何顺序排序,则可能发生最坏的.

史上最全的树形数据结构介绍 - erthalion

867 1

数据库索引的B树原理是怎么样?点击标题作者也承认:这在某种程度上太学术了,但你不应该害怕它。没有人会在面试中问你关于 Bw-Tree 的问题(希望如此),但在整个博客文章中,我一直试图表明,非常理论化.

避免在使用关系数据库SQL建立树形图

873

这又是一篇失败经验分享文章,点按标题可进入英文原文,使用关系数据库实现树形结构导致后期性能降低,其实应该使用专门的GRAPH图数据库。树形结构的表字段一般有两个:父节点ID和子节点ID,通过定义两个节.

时空是一体(本体)的统一的,函数式、命令式是一体(本体)的统一的。

6 1972 5
图1 图2上面两个图是计算机里的对象空间和对象的运动轨迹,这两种有限集合图可能是同一个图。被cpu线程驱动的主体对象沿着红线行走,前一个图是主体观察到的左手边的世界,后一个图是主体观察到的自己右.

windows的注册表是好东西吗?

1 1278 2
这是什么的图标? 昨天不知怎么搞的突然想到注册表,看那个注册表的图标,突然发现人家是按照空间思考问题的,怪不得人家比我们高效,在人家看来那个树形的注册表是一种一层套一层,一个挨一个堆积起来的立方.

理解人造的计算机世界,尝试认识CLR

2 1526 4

类型定义表 和 字段定义表CLR为什么是类型定义表、字段定义表、方法定义表、方法参数表?为什么不把“类型定义表、字段定义表”合并?可能是因为这样:CLR面向的是两种用户,开发人员和计算机。对于开发人员.

为什么是树?到底有没有上帝维度?

1 1084
为什么是树?实践前人的忠告。是因为树是有形的集合,隐隐约约知道前人留给我们一个忠告:使用图形去思考。集合论不支持我们对人工智能的乐观人们说不必担心人工智能,不必担心计算机与人为敌。但是一旦我们作为这个.