C++ C++;,如何创建和绘制二叉树,然后按预定顺序遍历它

C++ C++;,如何创建和绘制二叉树,然后按预定顺序遍历它,c++,binary-tree,tree-traversal,C++,Binary Tree,Tree Traversal,我如何创建一个二叉树,并使用预先排序的遍历策略来绘制它?根将是输入的第一个数字 我有一组数字:48325154312439。48将是根。如何在预顺序遍历中将子节点推送到二叉树上?想象下面的子问题。您有一组数字: N A1...AX B1...BY 您知道N是相应树的根。你只需要知道左边的子树上有哪些数字。显然,其余的数字构成了正确的子树 如果您还记得二进制搜索树的属性,您就会知道左子树的元素的值小于根(而右子树的元素的值大于根) 因此,左子树是小于(或可能等于)N的数字序列。其余的数字在右边的

我如何创建一个二叉树,并使用预先排序的遍历策略来绘制它?根将是输入的第一个数字


我有一组数字:
48325154312439
。48将是根。如何在预顺序遍历中将子节点推送到二叉树上?

想象下面的子问题。您有一组数字:

N A1...AX B1...BY
您知道
N
是相应树的根。你只需要知道左边的子树上有哪些数字。显然,其余的数字构成了正确的子树

如果您还记得二进制搜索树的属性,您就会知道左子树的元素的值小于根(而右子树的元素的值大于根)

因此,左子树是小于(或可能等于)
N
的数字序列。其余的数字在右边的子树中

递归求解

A1...AX

例如:

10 1 5 2 9 3 1 6 4 11 15 12 19 20
你会得到:

  • 根数:10
  • 左子树:1 5 2 9 3 1 6 4
  • 右子树:11 15 12 19 20

想象一下下面的子问题。您有一组数字:

N A1...AX B1...BY
您知道
N
是相应树的根。你只需要知道左边的子树上有哪些数字。显然,其余的数字构成了正确的子树

如果您还记得二进制搜索树的属性,您就会知道左子树的元素的值小于根(而右子树的元素的值大于根)

因此,左子树是小于(或可能等于)
N
的数字序列。其余的数字在右边的子树中

递归求解

A1...AX

例如:

10 1 5 2 9 3 1 6 4 11 15 12 19 20
你会得到:

  • 根数:10
  • 左子树:1 5 2 9 3 1 6 4
  • 右子树:11 15 12 19 20

假设您有以下二叉树:

        A
      /    \  
    B        C   
   / \      / \
  D   E    F   G
     / \    
    H   I
一个预先排序的遍历从左到右依次进行

所以这个二叉树的前序是:
abdehehicfg


有关如何在C++中实现此功能的更多详细信息:

假设您有以下二叉树:

        A
      /    \  
    B        C   
   / \      / \
  D   E    F   G
     / \    
    H   I
一个预先排序的遍历从左到右依次进行

所以这个二叉树的前序是:
abdehehicfg


有关如何在C++中实现此功能的更多详细信息:

您是否正在尝试在给定预顺序遍历的情况下构造二叉树?或者你想在二叉树上得到预订单旅行?(对不起,问题不太清楚)使用上述数字构建的二叉树的预序遍历将产生哪些数字您是否尝试在给定预序遍历的情况下构建二叉树?或者你想在二叉树上得到预订单旅行?(对不起,这个问题不是很清楚)使用上面的numberrsOk构建的二叉树的预序遍历会产生哪些数字,可能只有我一个人,但我无法精确指出这一点。我给你一个整数数组:4743202434435。所以树应该是:47左子树:202432右子树:44,43,35?不,44,43和35都比47小。这意味着47是根,左边的子树包含所有的6个数字,右边的子树是空的。好吧,也许只是我,但我不能确定这一点。我给你一个整数数组:4743202434435。所以树应该是:47左子树:202432右子树:44,43,35?不,44,43和35都比47小。这意味着47是根,左子树包含所有6个数字,右子树为空。