我在python中编写了一个二叉树结构。我可以为每个节点输入数据,但在插入过程结束后(如Java 12中)不能迭代数据,并以树格式打印。
class Tree:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def Insert(i, p):
if i == 4:
return
else:
p.left = Tree(input("Enter Value for left
如何对固定叶数的二叉树进行所有可能的树结构置换?哪种算法可以构建所有可能的树结构?所有可能的树结构的数量是多少?
对于二进制表达式树,字母表必须是叶子
例如(a+b)*c
*
+ c
a b
叶子的数量是3
我们想要置换到其他结构,比如
*
a +
b c
我猜是为了修复顺序,相同的顺序,因为我将在后面的过程中
我刚刚开始学习二叉树。在给定Inorder和Postorder或Inorder和Preorder的情况下,有没有一种算法来找出二叉树结构?我一直在尝试手动操作,但它从来没有出来correct.For例如-这两个是有效的顺序和后序遍历一个给定的树:
顺序:D B F E A G C L J H K后序:D F E B G L J K H C A
显然,A是根元素,因为它是Postorder中的最后一个元素。现在按顺序看,左边的子树变成:{D B F E},右边的子树变成{G C L J H K}。右子树的根将是前序中倒数第二的元素,即C。我现在可以进一步划分右子树(以C为根),给出{G}作为右子
我有树结构。
class Element {
private List<Element> children;
}
Element treeStructure = produceSomeTreeStructure();
//How to get its height and number of elements.
直进解是做两个循环.首先,我可以找到节点数。
(对非二叉树改变此算法),
和第二个循环得到树的高度
再次,将该算法应用于非二叉树.
我的问题是,如何一走了之。保持全局变量的结果对我来说是可以接受的。
例如,BST类使用树结构:
public class BST<Key extends Comparable<Key>,Value> {
private Node root;
public class Node {
private int n;
private Node left;
private Node right;
private Key key;
private Value val;
}
public void put()
我想知道如何用子节点替换非二叉树的节点。例如,我会从这样的结构开始:
a
/ / \ \
b c d e
/\ / /\\
f g h i jk
如果我的目标节点e要替换为它的子节点,则结果如下所示
a
/ / \ \ \ \
b c d i j k
/\ /
f g h
在JSON中,初始结构如下所示:
{
"id": "a",
"children": [
{
"id":
我有一个应用程序,它有一个树形结构,其中每个父节点都有3个或更多的子节点。每个节点包含一个整数值。我正在尝试查看树中是否存在给定的整数值。如何在树上进行深度优先搜索?我理解我们从根开始,然后在树的每个分支中尽可能地探索。不过,我在Java中实现它时遇到了问题。我是否需要某种其他数据结构来执行遍历?
如果有人能给出一个示例实现,那将会很有帮助。
树结构如下所示。我需要实现findNode函数:
public class Tree{
public Node{
Node [] children;
int val;
public Node[