为什么makeTree methond没有为节点根分配值

问题描述

代码

    import java.util.ArrayList;
    import java.util.Stack;

class GenericTree {
// Node class
  private static class Node {
    int data;
    ArrayList < Node > children = new ArrayList < >();
  }
// making tree from array value
  public static void makeTree(Node root,int[] arr) {
    Stack < Node > stack = new Stack < >();

    for (int i = 0; i < arr.length; i++) {
      if (arr[i] == -1) stack.pop();
      else {
        Node node = new Node();
        node.data = arr[i];
        if (stack.size() > 0) stack.peek().children.add(node);
        else root = node;
        stack.push(node);
      }
    }
  }
// display all values from tree
  public static void display(Node root) {
    System.out.print(root.data + "->");
    for (Node node: root.children)
    System.out.print(node.data + "->");
    System.out.println();
    for (Node node: root.children)
    display(node);
  }

  public static void main(String[] args) {
    GenericTree tree = new GenericTree();
    Node root = new Node();
    int[] arr = {100,80,60,-1,50,90,10,20,-1};

    makeTree(root,arr);
    display(root);
  }
}

输出

0->

为什么makeTree()函数没有为根分配值 我是数据结构的新手,开始学习树的数据结构,但是在使用数组值创建树结构时遇到了一些问题,我不知道为什么该函数不起作用并且不将值从数组的值传递给根节点来分配

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)