微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么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 举报,一经查实,本站将立刻删除。