binary-tree相关内容

切片得到神奇的更新

我正在尝试编写一个程序来查找二叉树中的所有根到叶路径,其中每个路径的和等于给定的和。 以下是我编写的代码 package main import ( "fmt" ) type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func main() { root := ..
发布时间:2022-03-13 10:37:47 其他开发

如何在二叉树中搜索并返回节点?

我正在尝试在二叉树中搜索节点,如果它在那里,则返回,否则返回NULL。顺便说一句,节点类有一个方法name(),它返回一个带有其名称的字符串.到目前为止,我得到的是: private Node search(String name, Node node){ if(node != null){ if(node.name().equals(name)){ ..
发布时间:2022-03-13 10:35:07 Java开发

返回二叉搜索树的最小和最大元素-Python

如何向我的BST类添加两个不同的函数来计算给定树中的最小和最大元素?那么最小(自我)函数和最大(自我)函数?目前我无法做到这一点,我有一种感觉,这可能与存储整数有关。我的下面的BST可以按原样存储整数吗? class BTNode: def __init__(self,d,l,r): self.data = d self.left = l ..
发布时间:2022-02-26 22:09:49 Python

我的二叉树程序在输出时崩溃

我正在尝试编写二叉树,但它崩溃了。 它一直打印出相同的数字:左节点(较小的数字)和根节点。它递归地重复该程序,直到崩溃。 我知道我的代码还有其他一些错误,但这是需要解决的主要问题,所以我的代码如下: #include using namespace std; struct node { int value = 0; node* left = NULL ..
发布时间:2022-02-23 10:46:30 C/C++开发

有返回问题的总和的所有路径

我有一个问题是要找到总和的所有路径.问题是: 给定一棵二叉树和一个数字“S",找到从根到叶的所有路径,使得每条路径的所有节点值之和等于“S". 我的递归方法是: def all_sum_path(root, target):结果 = []find_sum_path(根,目标,结果,[])返回结果def find_sum_path(根,目标,结果,新路径):如果不是根:返回无new_p ..
发布时间:2022-01-19 15:27:55 Python

Java 使用特定格式的级别顺序打印二叉树

好的,我已经阅读了所有其他相关问题,但找不到对 java 有帮助的问题.我从解读其他语言的内容中得到了大致的想法;但我还没有弄清楚. 问题:我想对排序进行级别排序(我使用递归)并以树的一般形状将其打印出来. 所以说我有这个: 1/\2 3//\4 5 6 我的代码打印出这样的级别顺序: 1 2 3 4 5 6 我想这样打印出来: 12 34 5 6 现在,在你给我做一个关 ..
发布时间:2022-01-15 10:21:59 Java开发

二叉树 T 的叶节点中的值列表

List 是二叉树的叶节点中的值列表,我试图弄清楚如何输出它.这给了我所有的节点,但我只需要叶子. lea(nil,[]).lea(t(X,L,R),[X|L]) :-利亚(L,L1),利亚(R,L2),附加(L1,L2,L). 运行它给了我: ?- lea(t(a,t(b,t(d,nil,nil),t(e,nil,nil)),t(c,nil,t(f,t(g,nil,nil),nil))), ..
发布时间:2022-01-12 09:57:01 其他开发

如何就地将二叉树转换为二叉搜索树,即我们不能使用任何额外的空间

如何将二叉树就地转换为二叉搜索树,即我们不能使用任何额外的空间. 解决方案 你没有太多的事情要做,但如果需求是我认为的那样,你已经创建了一个二叉树并坐在内存中,但未排序(无论如何,您希望它的排序方式). 我假设树节点看起来像 struct tree_node {struct tree_node * 左;struct tree_node * 对;data_t 数据;}; 我还假设您 ..

真实世界的树结构示例

我正在寻找一些用于商业/免费软件项目的树结构示例,无论是现代的还是旧的.我可以在维基百科上看到示例,但我正在寻找更具体的示例以及如何使用它们.例如,数据库中的主键(根据我读过的内容)存储在 BST 结构或 BST 的变体中(请随时纠正我) 我的问题不限于二叉搜索树 (BST),它可以包括任何变体,例如红黑、AVL 等. 解决方案 如果示例有点通用,即与图形相关而不一定与树相关,是否可 ..
发布时间:2022-01-05 19:04:21 其他开发

c ++从二叉搜索树中删除具有两个孩子的特定节点

我目前正在开发一个程序来处理 C++ 中的 BST.我的所有函数都在工作,除了 removeNode,它删除树中给定键值的节点.我认为前两种情况可行,但第三种情况给我带来了麻烦.我知道如何删除有两个孩子的节点的逻辑,但目前代码对我不起作用.这是节点 结构节点{整数键;节点*左;节点*对;}; 这里是删除函数的代码,以一个节点在底部有多个子节点的情况 node* Tree::removeKey ..
发布时间:2022-01-05 19:02:00 C/C++开发

OpenCL - 将树复制到设备内存

我用 C 代码实现了一个二叉搜索树.我的每个树节点看起来像这样: typedef struct treeNode {整数键;struct treeNode *right;struct treeNode *left;} treeNode_t; 由宿主建造的树.设备对树的查询. 现在,假设我已经在主机内存中构建了我的树.我想将我的树的根复制到我设备的内存中. 仅仅复制树的根是不够的.因 ..
发布时间:2022-01-05 19:01:17 其他开发

完整的二叉树定义

我有一些关于二叉树的问题: 维基百科指出,一棵二叉树是完备的,当“一棵完全二叉树是一棵二叉树,其中每一层(可能除了最后一层)都被完全填充,并且所有节点都为尽量靠左."最后一句“尽可能向左"是什么意思? 如果(1)它是空的,或者(2)它的左右孩子高度平衡并且左树的高度是在右树高度的 1 以内,取自 如何确定是否二叉树是平衡的?,这是正确的还是 1 值存在“抖动"?我在我链接的答案中读到, ..
发布时间:2022-01-05 19:00:33 其他开发

来自先序和中序遍历的二叉树

如何从这些 pre/in order 遍历中获取树: 前:A、B、D、E、C、F、G、H在:E、D、B、A、G、F、H、C 编辑:我的回答 A/\乙丙/\DF//\EG H 解决方案 编辑:更正, 您没有正确答案,FGH 在 C 的左侧. 要验证只需针对它运行两个算法: PreOrder(节点)如果节点为空返回打印(节点)预购(node.left)预购(节点.右) ..
发布时间:2022-01-05 18:50:57 其他开发

二叉树的第一个公共祖先

如果我有一个这样的二叉搜索树,那么节点 6 和 1 的最低共同祖先是什么? 解决方案 根据维基百科定义的最低共同祖先我纠正自己: 最低共同祖先(LCA)是图论中的一个概念,计算机科学.设 T 是一棵有 n 个节点的有根树.最低的共同祖先在两个节点 v 和 w 之间定义为最低T 中同时具有 v 和 w 作为后代的节点(我们允许一个节点成为自己的后代). 所以是的,按照这个定义,正 ..

平衡 AVL 树需要不止一次旋转?

我最好的猜测是,当您从已经平衡的 AVL 树中插入或删除一个元素时,一次旋转总是足以平衡 AVL 树. 一转就够了吗?一个示例将有助于需要多次轮换的情况. PS:我只将 RL/LR 旋转算作一次旋转. 解决方案 对于 insert 最多旋转 1 圈. 对于删除,旋转次数以 O(log(n)) 为界.Log(n) 是树的高度. 关于 AVL 删除的更多解释.当你从 AVL 中 ..
发布时间:2022-01-05 18:44:43 其他开发

在二叉树中寻找最不常见的祖先

可能的重复: 我如何找到二叉树中两个节点的共同祖先? 二叉树的第一个共同祖先 我有一个二叉树,如下所示.我需要找到最不常见的祖先(LCA).例如6和4的LCA是1,4和5的LCA是2. 1/\2 3/\/\4 5 6 7 谁能建议我应该如何处理和解决这个问题? 解决方案 从一个普通的深度优先搜索算法开始: public Node find(Node node, int t ..
发布时间:2022-01-05 18:44:08 Java开发

在 BST 中寻找最大的子树

给定一棵二叉树,我想找出最大的子树,它是其中的 BST. 幼稚的方法: 我有一个简单的方法,我访问树的每个节点并将这个节点传递给 isBST 函数.如果它是 BST,我还将跟踪子树中的节点数. 还有比这更好的方法吗? 解决方案 我已经在我的博客中发布了完整的解决方案和解释: http://www.leetcode.com/2010/11/largest-binary ..
发布时间:2022-01-05 18:40:53 其他开发

两棵二叉树同构是什么意思?

两棵二叉树同构是什么意思?我一直在网上找,似乎找不到明确的解释. 据我所知,如果两棵树具有相同的形状,则它们是同构的.所以我猜测两个相同的树可以在节点中包含不同的值. 解决方案 Isomorphic 来自希腊语“相同的形状"(就像 isobar 是具有相同气压的点,而多边形的意思是“多面")所以你的理解是正确的.但是不要误以为在这种情况下形状是物理形状(例如树有一个根、一个左节点和一 ..
发布时间:2022-01-05 18:40:18 其他开发

如何在给定的两棵二叉搜索树中找到最大的公共子树?

给出了两个 BSTs(二叉搜索树).如何在给定的两个二叉树中找到最大的公共子树? 编辑 1:这是我的想法: 让,r1 = 第一棵树的当前节点r2 = 第二棵树的当前节点 我认为有一些情况我们需要考虑:情况 1:r1.data r2.data2个要解决的子问题:- 首先,检查 r1.left 和 r2- 其次,检查 r1 和 r2.right情况 3:r1.data == r2.dat ..
发布时间:2022-01-05 18:39:05 其他开发