binary-tree相关内容

C语言中的二叉树插入排序

嘿,谁能解释一下如何在C语言中使用插入排序对二叉树进行排序,因为时间复杂性是个问题。我只是在学习编程。谢谢你们! 推荐答案 如果以传统意义对二叉树进行编码,则在向树中添加项目时,它将保留排序顺序。通过遍历树,您可以按顺序获得完整的项目列表。我建议您阅读: http://en.wikipedia.org/wiki/Tree_traversal http://en.wikipe ..
发布时间:2022-08-06 14:55:08 其他开发

二叉树--求k深度的节点数

以下函数对二叉树进行操作。该函数将接受指向树根的指针和非负的int k。它应返回从根开始的节点数k深度。 struct treenode { int data; struct treenode* left; struct treenode* right; } int numNodesHeightK(struct treenode* root, int k){ if(root ..
发布时间:2022-08-06 14:44:48 其他开发

将叶子添加到二叉搜索树,Haskell

类型定义为 data BST = MakeNode BST String BST | Empty 我正在尝试向树中添加新的叶子,但我真的不知道如何使用递归来做到这一点。 函数设置如下 add :: String -> BST -> BST 推荐答案 使用二叉树的优势在于,您只需查看树的“当前部分”即可知道在何处插入节点。 那么,让我们定义a ..
发布时间:2022-06-30 22:05:01 其他开发

LISP逐层显示二叉树

我有一个类似于(A(B(C,D))(E(F)的列表,它代表这棵树: A / B E / / C D F 如何打印为(A、B、E、C、D、F)? 这就是我所能做到的: ((lambda(tree) (loop for ele in tree do (print ele))) my-list) 但打印: A (B ( ..
发布时间:2022-06-30 22:01:45 其他开发

用PROLOG创建二叉树

我是PROLOG的初学者,我的第一个任务是实现一个函数Construction(),它从一个列表构建一棵二叉树。我知道我的代码中有错误或遗漏了什么,但我不能确定是什么。我也认为帮助器方法可能是必要的,但我想不出该怎么做。 到目前为止,我的代码如下: construct([],nil). construct(E, tree(E,nil,nil)). construct([H|T], tree( ..
发布时间:2022-06-30 21:56:11 其他开发

二叉树的所有节点之和

我正在尝试编写一个程序来计算由列表列表表示的二叉树(不是二叉树)中所有节点(包括根)的总和。从概念上讲,我理解递归方式是最好的方式,但就是无法弄清楚代码。到目前为止,我的代码是: class BinaryTree: def __init__(self,rootObj, leftChild = None, rightChild = None): self.key = r ..
发布时间:2022-03-13 11:09:51 Python

表达式树-带字符的运算

用户通过4*5+2/3这样的操作输入一个字符串,代码应该根据它和计算所述表达式树来生成表达式树。我遇到一个问题,程序使用ASCII表的十进制值而不是实际数字创建表达式树。 例如,程序存储并使用52 42 53 43 50 47 51进行计算,而不是4*5+2/3。我想要的运行屏幕是: 1 //this is the number of strings 4*5+2/3 //th ..
发布时间:2022-03-13 11:07:43 其他开发

用递归函数在Python中实现决策二叉树

我是数据结构的初学者,我正在使用Python从列表创建决策二叉树,列表的元素应该在叶子中。列表的长度始终是配对数字。 我创建了一个二叉树的数据结构: class BinaryTree: def __init__(self, value): self.value= value self.left = None self.right = None ..
发布时间:2022-03-13 11:01:40 Python

删除具有特定值的子树

我试图解决的问题是,给定一个二叉树,删除与传递的参数值相同的子树。以下是我的代码,但我认为它不起作用,因为更改后的树与原始树完全相同。 Before: 5 / 3 2 / / 2 1 4 3 After removal of subtree o ..
发布时间:2022-03-13 10:59:36 Java开发

通过引用传递指针时出错

我将包含指向此非常类似问题的链接:C++ initial value of reference to non-const must be an lvalue 错误是相同的(非常数引用的初始值必须是左值),但情况不同。与该示例相反,在我的函数中,指针确实需要修改。我正在编写一个递归函数来将节点添加到二叉搜索树中。此处包含该函数。 1 void BST::insert(BSTNode*& c ..
发布时间:2022-03-13 10:56:13 C/C++开发

如何从层次顺序遍历生成二叉树?

给定一个level_order列表(可以包含None值),如何按照列表中的None值构建二叉树,即None节点不能有任何子节点(left或right值)。 from typing import List, Optional class Node(): def __init__(val: int=None, left: Optional[Node]=None, right: Opti ..
发布时间:2022-03-13 10:48:01 Python

有没有可能设计一个节点有无限多个子节点的树呢?

如何设计具有大量(无限数量)分枝的树? 我们应该使用哪种数据结构存储子节点? 推荐答案 您实际上不能存储无限多的子项,因为内存无法容纳这些子项。但是,您可以无限制地存储多个子节点,也就是说,您可以创建树,其中每个节点可以有任意数量的子节点,并且没有固定的上限。 有几种标准方法可以做到这一点。您可以让每个树节点存储其所有子节点的列表(可能是动态数组或链表),这通常是通过尝试来 ..
发布时间:2022-03-13 10:42:47 其他开发

如何在控制台中“画”二叉树?

如何在SWIFT中打印二叉树,以便输入79561打印输出如下: 7 / 5 9 / 1 6 我尝试使用For Loops和If Statements用一些代码来安排,但没有成功。 我的代码是: import UIKit //Variable "node" used only to arrange it in output. var node = " ..
发布时间:2022-03-13 10:40:23 移动开发