【问题标题】:Printing a binary tree in 2 dimensions using array in C使用C中的数组打印二维二叉树
【发布时间】:2021-09-07 17:25:21
【问题描述】:

我正在尝试使用一维数组实现二叉树。我知道父节点的左节点将是 2n+1,而右节点将是 2n+2,其中 n 是父节点的索引。但是,我无法理解如何使用此信息以 2D 形式打印二叉树。本质上,我想像这样打印它:

      4
  2
      5
1
      6
  3
      7

感谢任何帮助!

【问题讨论】:

    标签: arrays c binary-tree


    【解决方案1】:

    类似于(伪代码)的东西

    PrintNode(0, 0);
    

    然后

    void PrintNode(int nodeIndex, int level)
    {
      if (a[nodeIndex] != -1)
      {
          PrintNode(nodeIndex*2+1, level + 1);
    
          PrintSpaces(level * 4);
          PrintValue(a[nodeIndex]);
          NewLine();
    
          PrintNode(nodeIndex*2+2, level + 1);
      }
    }
    

    【讨论】:

    • 当您说a[nodeIndex] != -1 时,它会检查节点是否为空吗?
    猜你喜欢
    • 1970-01-01
    • 2016-01-22
    • 2018-12-02
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多