二叉树 java

Binary tree java

如何创建用户输入? 我正在做一个二叉树编程问题,但我不知道如何让输入来自用户

public class BinaryTreeApp {

public static void main(String[] args) {

BinaryTree a = new BinaryTree();

Node root = a.createNewNode(10);
root.left = a.createNewNode(12);
root.right = a.createNewNode(15);
root.left.left = a.createNewNode(25);
root.left.right = a.createNewNode(30);
root.right.left = a.createNewNode(36);

有很多方法可以做到这一点,您需要考虑某种输入格式 - 可以是很多东西。 例如,输入可以只是 'space' 分隔值 10 12 15 25 30 26 然后解析该输入并从中构建树。 在你解析输入后写了一些伪代码

root = input[0]
queue.enqueue(root)
for i in 1 to input.size step = 2:
    current = queue.dequeue()
    current.left = input[i]
    current.right = input[i + 1]
    queue.enqueue(current.left)
    queue.enqueue(current.right)

编辑: 添加了一些 Java 代码

import java.util.Scanner;  // Import the Scanner class
import java.util.LinkedList; 
import java.util.Queue; 



public class HelloWorld{
    private static class Node{
        public Node left;
        public Node right;
        public String value;
        public Node(String v){
            value = v;
        }
    }
     public static void main(String []args){
        Scanner scanner = new Scanner(System.in);
        //String userInput = scanner.nextLine();
        String userInput = "10 12 15 25 30 26 27";
        String[] values = userInput.split(" ");
        Node root = new Node(values[0]);
        Queue<Node> q = new LinkedList<>();
        q.add(root);
        for(int i = 1; i < values.length; i = i + 2){
            Node current = q.remove();
            current.left = new Node(values[i]);
            current.right = new Node(values[i + 1]);
            q.add(current.left);
            q.add(current.right);
        }

     }
}