C++,如何创建和绘制二叉树,然后按预购方式遍历它

C++, How to create and draw a Binary Tree then traverse it in Pre-Order

本文关键字:然后 方式 遍历 二叉树 何创建 创建 C++ 绘制      更新时间:2023-10-16

如何创建二叉树并使用预购遍历策略绘制它? 根将是进入的第一个数字。

我有一组数字:48 32 51 54 31 24 39。 48 将是根。 如何在预购遍历中将子节点推送到二叉树上?

想象一下以下子问题。你有一组数字:

N A1...AX B1...BY

您知道N是相应树的根。您只需要知道哪些数字构成了左侧子树。显然,其余的数字形成了正确的子树。

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

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

递归求解

A1...AX

B1...BY

例如给出:

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

预购遍历变为节点、左、右。

所以这个二叉树的预序将是:A B D E H I C F G

有关如何在C++中实现此功能的更多详细信息:https://stackoverflow.com/a/17658699/445131