Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java二叉树验证_Java_Binary Search Tree - Fatal编程技术网

Java二叉树验证

Java二叉树验证,java,binary-search-tree,Java,Binary Search Tree,这个项目的重点是从用户那里获取一个数组,并使用它创建一个使用节点的树。下一步是调用一个方法来检查它是否表示二叉树。我已经为此工作了几个小时,似乎找不到正确的检查方法 这是到目前为止我的代码。除了检查它是否是二叉树的isBinaryTree()方法之外,我已经做了所有的事情 import java.util.Scanner; public class TestBinaryTree { Node root; public void addNode(int key) {

这个项目的重点是从用户那里获取一个数组,并使用它创建一个使用节点的树。下一步是调用一个方法来检查它是否表示二叉树。我已经为此工作了几个小时,似乎找不到正确的检查方法

这是到目前为止我的代码。除了检查它是否是二叉树的
isBinaryTree()
方法之外,我已经做了所有的事情

import java.util.Scanner;

public class TestBinaryTree 
{
Node root;

    public void addNode(int key)
    {
        Node newNode = new Node(key);

        if(root == null)
        {
            root = newNode;
        }
        else
        {
            Node focusNode = root;

            Node parent;

            while(true)
            {
                parent = focusNode;

                if(key < focusNode.key)
                {
                    focusNode = focusNode.leftChild;

                    if(focusNode == null)
                    {
                        parent.leftChild = newNode;
                        return;
                    }
                }
                else
                {
                    focusNode = focusNode.rightChild;

                    if(focusNode == null)
                    {
                        parent.rightChild = newNode;
                        return;
                    }
                }
            }
        }
    }

    /*public static boolean isBinaryTree(int rt, int lft, int rght) 
    { 

    }*/

    public static void main(String[] args) 
    {
        int Nroot, Nleft, Nright;

        Scanner input = new Scanner(System.in);
        TestBinaryTree theTree = new TestBinaryTree();

        System.out.println("How many numbers are in the array: ");
        int num = input.nextInt();

        int arr[]=new int[num];

        System.out.println("Enter the numbers: ");
        for(int i=0;i<num;i++)
        {
            arr[i] = input.nextInt();
            theTree.addNode(arr[i]);
        }
    }
}

class Node
{
    int key;

    Node leftChild;
    Node rightChild;

    Node(int key)
    {
        this.key = key;
    }

    public String toString()
    {
        return "Node: " + key;
    }
}
import java.util.Scanner;
公共类TestBinaryTree
{
节根;
公共void addNode(int键)
{
Node newNode=新节点(键);
if(root==null)
{
根=新节点;
}
其他的
{
节点focusNode=root;
节点父节点;
while(true)
{
父节点=焦点节点;
if(键对于(int i=0;我不是只需要访问每个节点并确保它没有超过两个子节点吗?很可能,您会感到困惑,二叉树与搜索二叉树不同。