binary-search-tree相关内容

ImmmableSortedSet和fsharp Set有什么区别?

我想知道ImmutableSortedSet和本机FSharp Set有什么区别?看起来两者的性能特征是相似的.我还在某处看到SortedSet被实现为一棵红黑树,所以我猜ImmutableSortedSet也是一样. fsharp map的内部实现是什么?是此处声明的红黑树或此外,为什么MSDN文档没有明确说明库集合的实际数据结构是什么?我知道这些是实施细节,并且即将更改.我的观点是,如果 ..
发布时间:2020-09-21 00:13:19 C#/.NET

为什么std :: set不只是称为std :: binary_tree?

就数据结构而言,C ++中的 std :: set不是真正的集合. std :: unordered_set是一个实集,但std :: set是一个二进制搜索树,更具体地说是一棵红黑树.那么,为什么将其称为std :: set?是否有一些将std :: set与二叉树区分开的特定功能?谢谢. 解决方案 为什么std :: set不仅仅称为std :: binary_tree? ..
发布时间:2020-09-21 00:13:15 C/C++开发

二进制搜索树toString

我无法以教授想要的格式打印二进制搜索树. 他的格式如下: {(12,10,13),(10,8,11),(8,6,9),(6,4,7),(4,2,5),(2,1,3),(1,*,*),(3,*,*),(5,*,*),(7,*,*),(9,*,*),(11,*,*),(13,*,*)} 子集中的第一个数字是根节点,左边和右边的节点是左边和右边的子节点.然后,循环迭代后,左子节点将成为 ..
发布时间:2020-09-21 00:13:11 Java开发

关于二叉搜索树的问题

证明每个n节点二叉搜索树的可能性均不相同(假设以随机顺序插入项目),并且平衡树比直线树更有可能. 它是如何证明数学的? 解决方案 可能的树配置数量:请参见 获得单行,最不平衡,最深的树(具有n个节点)的方法数量:2 ^(n-1) 解释: 拾取第一个节点的两种方法(最大或最小) X 2种选择第二个节点的方式(在剩余的n-1个节点中最大或最小) ... X 2种拾取第(n-1)个节点的方 ..
发布时间:2020-09-21 00:13:10 其他开发

跨kd树进行双重递归以找到两组点之间最接近的方法

我已经为两组点构造了kd树,以便找到两组之间最接近的双色对: kd树存储为python词典,可在下面的代码中找到,并传递给函数('closest'),该函数旨在同时递归分析两棵树,以找到两者之间最接近的方法集合.这是为了避免强行解决问题. 我的第一次尝试是基于对这个问题的答案.通过这种尝试,我找不到一个条件使函数在碰到叶子时会“反弹",即if语句旨在返回叶子之间的最小距离,而从未达到现 ..

编写通用的遍历函数,可以灵活地处理具有不同参数的多个函数

我想使用std :: function来帮助我运行一个遍历BST并调用参数化函数的通用遍历函数. 我的困难是参数化函数的参数有所不同. 因此,例如,我要归纳以下三个函数(它们的参数都不同). //populates an array with the values in the BST by traversing the BST void LinkedBST::popula ..
发布时间:2020-09-21 00:12:04 C/C++开发

没有合适孩子的节点X如何拥有后继者?

当节点X没有合适的子节点时,我很难理解节点的后继者是什么. 据我了解,如果节点X没有正确的子节点,那么它将没有后继节点. 但是我的教科书上说: 如果节点X的右子树为空,并且X具有后继Y ... X没有合适的孩子怎么能拥有继任者? 解决方案 后继者只是有序序列中的下一个元素;它不一定必须是子元素. 例如,下面的5的后继者是7: 7 / \ 5 8 ..
发布时间:2020-09-21 00:10:57 Java开发

二叉树和快速排序?

我有一个家庭作业,内容如下(不要发火/担心,我不是要你做我的作业): 编写一个程序,该程序使用二进制搜索使用“快速排序"方法对一组数字进行排序 树.推荐的实现方式是使用递归算法. 这是什么意思?到目前为止,这是我的解释,正如我在下面解释的那样,我认为两者都有缺陷: A.从用户那里获取数字数组(整数或其他).使用数组上的常规quicksort算法对它们进行快速排序.然后将内容放入二 ..
发布时间:2020-09-21 00:10:54 其他开发

如何在C中按级别打印二叉树中的元素

我得到的是二叉树,而不是BST,因此元素没有排序,每个节点保存的信息是字符串类型. 当我在BST中打印包含整数的元素时,我会像这样递归地进行打印:(按顺序打印) void PrintElements(const Data* node) { // Check if its empty if (node == NULL) return; PrintEle ..
发布时间:2020-09-21 00:10:51 其他开发

计算二叉搜索树中的节点

我需要创建一个以二进制搜索树的根节点为参数的递归方法.然后,此递归方法将返回整个二叉搜索树中节点总数的int值. 这是我到目前为止所拥有的: public class BinarySearchTree extends AbstractSet { protected Entry root; //called by the main method public in ..
发布时间:2020-09-21 00:10:48 Java开发

Python:使用列表创建二进制搜索树

我的代码的目的是从txt文件中获取每个单独的单词并将其放入列表中,然后使用该列表制作一个二叉搜索树以计算每个单词的出现频率,并按字母顺序打印每个单词以及它的频率.的每个单词只能包含字母,数字,-或'我无法利用我的初学者编程知识来做的事情是使用我拥有的列表制作二叉搜索树(我只能插入整个列表在一个节点中,而不是将每个单词放到一个节点中来制作树).到目前为止,我的代码是: def read_wor ..
发布时间:2020-09-21 00:09:42 Python

删除二进制搜索树python中的节点

下面的代码是我的二进制搜索树的实现,并且我想实现delete方法以删除该节点.以下是我的实现,但是当我执行 时 bst = BSTRee() bst.insert(5) bst.insert(11) bst.insert(3) bst.insert(4) bst.insert(12) bst.insert(2) bst.delete(3) 当我调用delete方法时,它什么也没做.有人可以 ..
发布时间:2020-09-21 00:09:38 Python

递归插入BST

我已经制作了一个使用循环插入BST的函数,它工作得很好. 现在,当我使用递归编写该代码时,我不知道为什么它不能正常工作,但是根据我的逻辑是正确的.似乎没有将newnode添加到BST树中,并且从插入函数中退出后,树的头部再次变为NULL. #include using namespace std; class node{ public: int data; ..
发布时间:2020-09-21 00:09:36 C/C++开发

如何确定平衡或完全平衡的二叉搜索树(仅从图片中)

我不确定如何确定一棵树是否平衡,完全平衡,或者如果我将其作为图片而不是代码,则无法确定 例如,如果我有这棵树 我如何检查它是平衡的,完全平衡的还是不平衡的? 有人可以给我一个完美平衡的树的例子吗? [o] / \ [b] [p] \ / \ [d] [m] [r] 很明显,如果是这样,我就可以断定这棵树是不平衡的: [b] ..
发布时间:2020-09-21 00:09:20 Java开发

递归二进制搜索树插入

所以这是我的第一个Java程序,但是我已经做了c ++几年了.我写了我认为应该起作用的东西,但实际上没有作用.因此,我规定必须为此调用编写一个方法: tree.insertNode(value); 其中value是一个int. 出于明显的原因,我想递归地编写它,所以我必须解决以下问题: public void insertNode(int key) { Node temp ..
发布时间:2020-09-21 00:09:18 Java开发

哈希表-使用二进制搜索树实现

来自破解编码面试,第71页: 或者,我们可以使用BST实现哈希表.然后我们可以 保证O(log n)查找时间,因为我们可以保留树 均衡.另外,由于数组大,所以我们可以使用更少的空间 从一开始就需要分配更长的时间. 我知道链接列表,哈希表和BST的基础知识,但是我无法理解这些行.这到底是什么意思?最终的数据结构将是Trie吗? 解决方案 该部分的完整文本指出,最后一段是您所询问的 ..
发布时间:2020-09-21 00:08:12 其他开发