首页 文章
  • 0 votes
     answers
     views

    对二叉树进行递归搜索,返回true和false

    对于赋值,我应该提出一个名为 all_less 的递归函数,它接受一个指向 any 任意树( TN<T>* )和 T 参数的指针 . 如果所有值都小于T参数,则返回true,否则返回false . 我的 Tree 类的实例变量是这样的: T value; TN<T>* left; TN<T>* right; all_less 的函数原型如下所示: t...
  • 0 votes
     answers
     views

    在广度范围内搜索二叉树中查找第一个空值

    我正在尝试编写一个在二叉树上实现的二进制堆,但是我无法找到一种方法将新节点添加到堆的“底部”,即树中的第一个空值空间 - 第一次遍历 . 我已经有了一个有效的heapify函数,但我无法弄清楚如何在堆化之前添加一个新节点 . 我似乎无法想到一个可以找到我可以添加节点的空白空间的一致算法,每当我想出某些东西时,它就无法工作 . 我该怎么办?
  • 106 votes
     answers
     views

    二叉搜索树的定义是否允许重复键?

    我试图找到二叉搜索树的定义,并且我一直在寻找不同的定义 . 有人说,对于任何给定的子树,左子键小于或等于根 . 有人说,对于任何给定的子树,右子键大于或等于根 . 我的旧大学数据结构书中说“每个元素都有一个键,没有两个元素具有相同的键 . ” 是否存在bst的通用定义?特别是关于如何处理具有相同密钥的多个实例的树 . 编辑:也许我不清楚,我看到的定义是 1)左<= root <右 2)...
  • 176 votes
     answers
     views

    如何在任何二叉树中找到两个节点的最低共同祖先?

    这里的二叉树可能不一定是二进制搜索树 .结构可以视为 - struct node { int data; struct node *left; struct node *right; }; 我可以和朋友一起解决的最大解决方案就是这样 -考虑this binary tree: Binary Tree http://lcm.csa.iisc.ernet.in/dsa/img1...
  • 4 votes
     answers
     views

    确定O(1)中基于数组的二叉树中最低的子节点(具有最大索引的后代)?

    通过从左到右,从上到下设置索引,可以使用数组实现一些二叉树结构(例如堆) 0 / \ 1 2 / \ / \ 3 4 5 6 / \ / \ / \ / \ 7 8 9 10 11 12 13 14 ... etc. 可以在O(1)中轻松找到索引为 x 的节点的子...
  • 17 votes
     answers
     views

    将最大堆转换为二叉搜索树

    我们给出了一个2m-1个不同的,可比较的元素的数组,从1开始索引 . 我们可以将数组视为完整的二叉树: Node is placed at index i. Left child is placed at 2i. Right child is placed at 2i+1. 例如,数组 [7 6 4 5 2 3 1] 是树 7 / \ 6 4 / \ ...
  • 1 votes
     answers
     views

    Python - 将n-ary树转换为二叉树

    class Tree: def __init__(self, new_key): self.__key = new_key # Root key value self.__children = [] # List of children self.__num_of_descendants = 0 # Number of Descendants...
  • -2 votes
     answers
     views

    二叉树 - 哪种二叉树

    每个节点哪个更大的二叉树离开孩子而不是正确的孩子? 一个 . 完整的树湾二叉搜索树C . 螺纹树d . 完整的二叉树
  • 5 votes
     answers
     views

    检查二叉树是否也是二叉搜索树的问题

    我正试图解决这个问题,但我遇到了一些麻烦: 在二叉搜索树(BST)中:节点左子树中每个节点的数据值小于该节点的数据值 . 节点右子树中每个节点的数据值大于该节点的数据值 . 给定根节点:class Node {int数据;节点离开;节点权;}确定二叉树是否也是二叉搜索树 我有这个代码: boolean check(Node root) { //node doesn't have...
  • 103 votes
     answers
     views

    以Optimum方式在二叉搜索树中查找第k个最小元素

    我需要在二进制搜索树中找到第k个最小元素,而不使用任何静态/全局变量 . 如何有效地实现它?我在脑海中的解决方案是在O(n)中进行操作,这是最糟糕的情况,因为我计划对整个树进行顺序遍历 . 但在内心深处,我觉得我没有在这里使用BST属性 . 我的假设解决方案是正确的还是有更好的解决方案?
  • 3 votes
     answers
     views

    最大的子树,它是二叉搜索树(BST)

    给定一个二叉树,我想找出其中最大的子树BST . 这个问题与Finding the largest subtree in a BST重复,其中1337c0d3r通过遍历树向下提供O(n)解决方案 . 有两行代码令我困惑 . 任何人都可以帮我解释一下吗? // Find the largest BST subtree in a binary tree. // If the subtree is ...
  • 1 votes
     answers
     views

    二叉树的双线程树

    我需要从常规二叉树构建双线程树,如果可能的话使用递归 . 这是我们使用的定义:二叉树的线程树是通过将每个空左子项设置为inorder遍历中的节点的前任,并将每个null右子项设置为inorder遍历中的节点的后继来获得的 . 我找不到解决方案,这里有几个类似于这个但没有解决方案的帖子 . 我只需要算法,它可以是任何语言 这是构造函数,第二个是我需要做的: public ThreadedNode(T...
  • 1 votes
     answers
     views

    如何删除二进制搜索树的所有节点

    我正在尝试编写一个代码来删除BST的所有节点(每个节点只有三个属性,左,右和数据,没有父指针) . 下面的代码是我提出的,它只删除树的右半部分,保持左半部分完好无损 . 如何修改它以便左半部分也被删除(这样我最终只剩下没有左或右子树的根节点)? def delete(root): global last if root: delete(root.left) de...
  • 0 votes
     answers
     views

    无法理解树遍历递归函数

    我在理解预订,顺序和后序树遍历中涉及的递归函数时遇到了一些麻烦 . 我有一些递归的知识(但不可否认它不是我的强项) . 所有这些人似乎都称自己两次先与根的左子女打电话,然后与正确的孩子打电话 . 但这究竟是怎么可能的呢?对左子项的preOrder函数的调用不会将控制流返回到顶部,并且下一次调用永远不会执行吗? void preOrder (Node* root) { if (root =...
  • -1 votes
     answers
     views

    二进制搜索树节点删除错误

    我已经创建了我的二叉搜索树,并将指向我要删除的节点的指针放到我的 *p 中 . 删除方法应该是删除 *p 指向的节点,并且应该将 addtree 的子树添加到我的根目录 . *pBaum 是指向我的根的指针 . 但是我每次声明时都会在 addtree 上收到一条名为"conflict types"的错误消息 Baum = addtree(Baum, p->right)...
  • 0 votes
     answers
     views

    BST节点删除功能做某事我不明白

    所以我正在写一个BST节点删除功能,但我无法找出问题: 我有这个节点数据结构: struct webentry { char * topic; char * keyword; char * url; char * summary; char * review; int rating; }; 问题发生在...
  • 2 votes
     answers
     views

    在java中的线程树预订序列

    我正在尝试为java中 Binary Threaded 树的 preorder 遍历编写代码 . 我写了下面的代码,它只举几个例子,但是我忽略了一些边缘情况 . MORE INFO 节点有两个引用,分别左右指向节点的左子节点 . 名为successor的布尔字段根据inorder遍历确定右指针是指向子项还是后继项(如果successor == false:right指向child,则指向inord...
  • 1 votes
     answers
     views

    Haskell - 将后缀表达式转换为二叉树

    我想将postfix表达式转换为二叉树 . 我的函数将标记列表作为参数(字符串) . 每次我给函数任何输入时,调试器都会写一条消息:函数“add”中的非详尽模式 . 我的想法是:在令牌之后读取令牌并确定它是否是运算符或操作数 . 如果是操作数,请不要将任何节点保存到树中并将数字存储到堆栈中 . 否则,我创建一个带有运算符的节点,从堆栈中弹出符号,将它们设置为新节点的子节点,并将运算符推送到堆栈 ....
  • 11 votes
     answers
     views

    如何在树中搜索节点并将其返回?

    我正在尝试在二叉树中搜索一个节点,如果它在那里则返回,否则返回null . 顺便说一句,节点类有一个方法名称()返回一个带有它的名字的字符串...到目前为止我所拥有的是: private Node search(String name, Node node){ if(node != null){ if(node.name().equals(name)){ ...
  • 0 votes
     answers
     views

    迭代访问所有二叉树节点?

    我有一个二叉树,每个节点上都有一个单词 . 在另一个类中,我需要逐个访问节点,然后操纵这些单词 . 从另一个类逐个访问节点的最佳方法是什么? 在我的BinaryTree类中,每个节点都有一个左子节点,右侧节点和一个值(String) . 我有三个方法,printinorder,insert和findnode . find节点接受一个字符串,并查看该字符串是否存储在任何节点值中 . public ...
  • 1 votes
     answers
     views

    我的代码错误_2399963错了 - 二叉树

    我现在正在使用朋友类在C中创建二叉树 . 但是,有些事情是错的,我不知道应该改变什么 template <class Type> class BinaryTree{ public: BinaryTree(){ root = new BTNode<Type>(); currentNode = NULL; } ~BinaryTree(){ dele...
  • 1 votes
     answers
     views

    在Python中将学生记录添加到二进制搜索树

    对不起所有的代码,但对于我正在进行的这项任务,由于不同的引用,这是必要的 . 本章我们正在使用二叉树和二叉搜索树 . 我测试了BinaryTree()和BinarySearchTree()类没有问题 . 我的问题是:我们将记录添加到二元搜索树中,如Student类和main()函数中所示,以测试类 . 根据作业: Student类具有id和名称,getter和setter,str()函数,以便您...
  • -1 votes
     answers
     views

    在'*'标记之前的预期主表达式

    我编写了一个代码来查找二叉搜索树中的max元素,我在Insert函数中遇到以下错误: main.cpp:在函数'bstNode * Insert(bstNode ,int)'中:main.cpp:23:31:错误:在''令牌root-> left = Insert之前的预期primary-expression(bstNode * left,data ); ^ main.cpp:25:32:...
  • 0 votes
     answers
     views

    带有自定义数据的C二叉搜索树

    假设我有一个外部库bst,用于处理bst中的自定义数据类型插入 以下是new_node,insert和search函数: //new node struct bst_node* new_node(void* data) { struct bst_node* result = malloc(sizeof(struct bst_node)); assert(result); ...
  • 4 votes
     answers
     views

    二叉搜索树的字符串表示

    我一直在尝试为二叉搜索树编写一个递归字符串方法,该方法返回具有预订路径信息的树的多行表示 . 每个节点都应该以一系列<和>字符开头,这些字符显示从根到该节点的路径 . 我不确定如何使用每个连续调用一个字符扩展的字符串前缀参数 . 该方法应该能够重现这个例子: 树: 15 / \ 12 18 / / \ 10 16 20 \ \ 11 ...
  • -2 votes
     answers
     views

    二进制搜索树中插入的递归函数(C)

    我试图使用递归将新节点插入BST .但插入后我丢失了链接 .按顺序遍历显示程序只能访问根节点 .这是我的计划 class for BST class bst { struct node { struct node *lchild; int info; struct node *rchild; ...
  • 1 votes
     answers
     views

    从遍历构造二叉树

    考虑到它的遍历,我正在尝试构造一个二叉树(不 balancer ) . 我目前正在按顺序进行预订,但是当我想出这个后期订单时,根本不会有任何问题 . 我意识到这个话题已经存在一些问题,但他们似乎都没有回答我的问题 . 我有一个递归方法,它采用二阶树的Preorder和Inorder来重构它,但由于某种原因无法将根节点与后续子节点链接起来 . 注意:我不想要解决方案 . 我一直在试图弄清楚这几个小时...
  • 9 votes
     answers
     views

    在二叉搜索树中查找重复条目的策略

    我有一个BST,它有重复的条目 . 我想找到重复的条目 . 现在显然我可以编写一个遍历整个树的哑算法,这很容易 . 但是,我想写一个更高效的 . 这是我到目前为止所做的/想到的: 假设以下树 . 10 / \ 5 15 /\ / \ 2 8 10 16 \ \ 8 12 如果我想找到所有8个,我将首先找到10的...
  • 2 votes
     answers
     views

    给定数n,有多少 balancer 二叉树(不是二叉搜索树)?

    在这个问题中 balanced 的定义是 其左子树中的节点数和右子树中的节点数几乎相等,这意味着它们的差异不大于1 如果给出一个 n 作为总节点数,有多少这样的树? 如果我们用 height 替换 the number of nodes 怎么办?鉴于 height ,有多少高度 balancer 的树木?
  • 2 votes
     answers
     views

    为二叉搜索树创建随机密钥

    我的目标是为伪帕斯卡代码的编译器创建一个BST(二进制搜索树) . 据我所知,BST的工作原理如下:我有一个根,它有一些关键 - 依赖于我的生成密钥(如果它大于或小于根密钥)我从根向左或向右插入一个节点 . 显然,如果我使用数字作为键,树将会像: 1 \ 2 \ 3 我想要的是 balancer 的BST,如下所示: 1 / \ 2 3 ... etc. 这些钥匙显然...

热门问题