首页 文章
  • 0 votes
     answers
     views

    如何查看或查看二叉树中的层次结构下行?

    祝大家好日子,我在排除二叉树的线条方面遇到了问题,我对此非常陌生,并且不知道如何解决这个问题 . 我是菲律宾大学的学生,在我们的网络开发课上,每个小组(每个小组由3个人组成)组成教师任务,根据他为该小组选择的内容创建一个网站(他选择的方式是随机/来自一个关于什么任务的文章的 jar )现在我们的团队有责任创建一个二叉树结构来查看每个根/父和他们的叶子/孩子 . 他希望我们实现的是像this . 我...
  • -2 votes
     answers
     views

    需要帮助编写带有顺序遍历的二进制搜索树迭代器吗?

    在程序中,我想为ADT二进制搜索树实现一个STL迭代器 . 迭代器应该使用按顺序遍历迭代二进制搜索树中的每个节点一次 . 我想使用LinkedStack,LinkedList或LinkedQueue来帮助跟踪节点 . 目前我正在尝试使用LinkedStack . 到目前为止,我的代码存在缺陷,我知道,在编译和运行测试时,我会遇到语法错误和错误 . 我不知道该做什么或修复什么 . BinarySea...
  • 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 / \ ...
  • 32 votes
     answers
     views

    查找二叉树是否为二进制搜索树[重复]

    这个问题在这里已有答案: How do you validate a binary search tree? 29个答案 今天我接受采访时,我被要求编写一个程序,该程序采用二叉树,如果它也是二进制搜索树则返回true,否则为假 . 我的方法1:执行有序遍历并将元素存储在O(n)时间内 . 现在扫描数组/元素列表,检查第i个索引处的元素是否大于第(i 1)个索引处的元素 . 如果遇到这种情况,则...
  • 296 votes
     answers
     views

    二叉树和二叉搜索树之间的区别

    任何人都可以用一个例子解释 binary tree 和 binary search tree 之间的区别吗?
  • 0 votes
     answers
     views

    二叉树的不完全遍历(使用链接反转)

    我创建了一个程序,根据预先排序和顺序遍历构造二叉树,并使用链接反转按顺序遍历二阶树,按顺序和后序 . 我的程序执行但由于某种原因,遍历是不完整的 . 以下是我的前序遍历功能: void PRE_LINK_INVERT(struct BinaryTreeNode *Root) { struct BinaryTreeNode *father; struct BinaryTreeNode *cu...
  • 9 votes
     answers
     views

    二叉树插入算法

    我最近完成了为我正在进行的项目实现二进制搜索树 . 它进展顺利,我学到了很多东西 . 但是,现在我需要实现一个常规的二进制树...由于某种原因我难以理解 . 我正在寻找一种方法来做我的InsertNode函数.. 通常在BST中,您只需检查数据<root然后向左插入,反之亦然 . 但是,在普通的二进制树中,它只是从左到右填充,一次一个级别 . 任何人都可以帮我实现一个函数,只是从左到右添加一...
  • -6 votes
     answers
     views

    如何删除二叉树中的节点[重复]

    这个问题在这里已有答案: deletion in a binary search tree 2个答案 程序很简单,请执行以下步骤: 找到二叉树的最小值; 记录向量中的最小值; 删除树中具有最小值的节点; 重复1-3直到树空了 . 运行时没有报告错误,但函数removeNode保持 printf("Remove bug1!\n"); 我找不到任何逻辑错误,...
  • 262 votes
     answers
     views

    二叉树有哪些应用?

    我想知道二叉树的具体应用是什么 . 你能举一些真实的例子吗?
  • 135 votes
     answers
     views

    如何打印二叉树图?

    如何在Java中打印二叉树,以便输出如下: 4 / \ 2 5 我的节点: public class Node<A extends Comparable> { Node<A> left, right; A data; public Node(A data){ this.data = data; } }
  • 0 votes
     answers
     views

    C编程二进制树递归插入(非二进制搜索树)

    这是我的代码 . 我想以递归方式将项插入二叉树中 . 它不是二叉搜索树(左子不需要<父或右子不需要>父) . 它只是一个二叉树,每个节点最多可以有两个子节点 . 当我执行遍历时,它只是在无限循环中无限地打印出起始节点(5-> 5-> 5 - > ....) . 请帮帮我 . 我搜索了Stack Overflow并没有基于此 . 大多数是二叉搜索树 . 如果这是一个糟...
  • 0 votes
     answers
     views

    从叶子 Build 一个总和树

    嘿,我正在准备考试,我可以使用一些帮助 . 任务是从叶子的值数组(从左到右)构建二进制和树(父节点键是子键的总和),其总是2 ^ n长 . 我首先将数组转换为节点数组 . 然后我做了一个递归函数,它结合了对并在一个新创建的节点数组上调用它自己 . 有没有更好的方法来完成这项任务?也许一个“到位”?例如 输入:[1,2,3,4] 输出: 10/ 3 7/ \ / 1 2 3 4 class ...
  • 1 votes
     answers
     views

    (Python)来自二叉树的交替输入?

    所以我刚开始获得学位的肉和土 beans ,我正在学习Python . 本周我们的任务之一是使用二叉树并添加客人,允许树左右交替,然后打印左右过道客人的名字 . 我们的教授为我们提供了一些示例代码,我做了一些修改,让它做我想做的事情 . 这就是我所拥有的: guestnumber = 0 class Node: def __init__(self): self.left ...
  • 7 votes
     answers
     views

    C,为二叉树实现自定义迭代器(长)

    请你好 - 这是我的第一个问题 . = P 基本上作为夏季项目,我一直在浏览wikipedia page上的数据结构列表并尝试实现它们 . 我上学期参加了一门C课程并发现它非常有趣,作为我实施二项式堆的最后一个项目 - 这也非常有趣 . 也许我很讨厌,但我喜欢数据结构 . 无论如何,足够的背景故事 . 项目进展顺利,我从二叉树开始 . 为了更进一步,我需要创建迭代器来遍历树 . 我已经决定为每个...
  • 1 votes
     answers
     views

    重载二叉树的运算符

    在我的程序中,我的二进制树有一个preOrder Iterator类 . 在其中我试图在运算符上实现运算符重载,以便从头到尾遍历树 . 但我感到困惑,因为二叉树可以同时具有左侧和右侧 . 我怎么知道开头在哪里?它总是最左边的节点吗? 这是我的代码结构: 父二进制树: /* Binary Tree */ class bin_tree { public: int data; bin_t...
  • 0 votes
     answers
     views

    无序二叉树遍历

    对于类,我必须创建一个状态对象的二叉树,每个状态对象都包含一个驻留对象的二叉树,用于组织生活在每个状态的人 . 我正试图在一个特定的州寻找最年长的居民;然而,居民按字母顺序排列在树上,这对我的搜索完全没有任何意义 . 因此,我必须遍历整个居民树,更新保存最老的人的节点,并在树完全遍历后返回它 . 我有我的代码的第一部分,但我仍然坚持如何编写其余的递归 . 状态树的方法: node <Pers...
  • 0 votes
     answers
     views

    在java中迭代地销毁二叉树[复制]

    这个问题在这里已有答案: Deleting an object in java? 7个答案 该任务通常在递归的邮件订单遍历期间完成,并且在线的示例很少 . 其中一个是here,但我想知道它是否正确,因为似乎_deleteTree()方法只执行BFS并且不对节点执行操作,并且通过简单地将树的根设置为null来完成删除 . 毫无疑问,它将返回一棵空树 . 但它是删除所有树节点引用的正确方法吗? 此...
  • 0 votes
     answers
     views

    二叉树上的逐元素迭代器

    我想为我正在实现的二叉树创建pre / in / post / level-order迭代器 . 如果我只想打印整个数据,那么大多数theese只是一个三行递归函数,但我想逐个迭代 . 为了做到这一点,我需要打破我将用于'init'/'getcurrent'/'next'和'valid'函数的任何遍历算法,所以我想我可以存储遍历的状态(数组) / pointer)作为迭代器类的属性 . 对于树的表...
  • 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...
  • 11 votes
     answers
     views

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

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

    在二叉搜索树中删除

    我得到了两个二叉搜索树 . 例如,A和B.接下来,我被要求从树A中删除树B. 通过删除,我的意思是从A中删除B中存在的所有节点 . 注意:B不一定是A的子树 . 例如:A: 50/ 10 75/ / 1 60 90 B: 10/ 1 75 结果树应该是: 50 60 90 我想到了两种方法:A1:node * deleteTree(node * A,node * B);取树B...
  • -1 votes
     answers
     views

    二叉树数组到有序二进制树数组

    我正在解决HackerEarth问题之一 . 问题陈述如下, 给定一个包含N个节点的完整二叉树,并且每个节点都附加一个不同的整数 ai ,找到可以将二进制树转换为二叉树搜索树的最小交换次数 . 在一次交换中,您可以选择任意两个节点并交换它们的值 . 您将获得二叉树的数组表示 . 树的根将在 a[1] 根的左子将在 a[2] ,root的右子将在a3 . 数组位置 k 处的节点的左子节点将位于 a[...
  • 1 votes
     answers
     views

    lua不修改函数参数

    我一直在学习lua,似乎无法简单地实现这个二叉树的工作...... function createTree(tree, max) if max > 0 then tree = {data = max, left = {}, right = {}} createTree(tree.left, max - 1) createTree(tre...
  • 1 votes
     answers
     views

    需要有关二叉树过程的帮助(非二叉搜索树)

    我正在尝试实现二叉树(不是二叉搜索树) . 它主要是一个由插入/删除/搜索和清除程序组成的类模板 . 节点中保存的数据可以是任何数据 . 如下所示: template<class T> class BinaryTree { public: BinaryTree(int size); ~BinaryTree(); virtual bool insert(T dat...

热门问题