2012-04-11 11 views
2

これはメインクラスです:これはなぜ印刷されないのでしょうか?

import javax.swing.*; 
class BinarySearchTree { 
private Node root; 

public void main() 
{ 
    int Value = 0; 
    while(Value!= -1) 
    { 
     Value = Integer.parseInt(JOptionPane.showInputDialog("Enter a value")); 
     insert(root, Value); 
    } 
    print(); 
} 

public void insert(Comparable x) 
{ 
    root = insert(root, x); 
} 

public boolean find(Comparable x) 
{ 
    return find(root,x); 
} 

public void print() 
{ 
    print(root); 
} 

@SuppressWarnings("unchecked") 
boolean find(Node tree, Comparable x) 
{ 
    if (tree == null) 
     return false; 

    if (x.compareTo(tree.data) == 0) 
     return true; 

    if (x.compareTo(tree.data) < 0) 
     return find(tree.left, x); 
    else 
     return find(tree.right, x); 
} 

void print(Node tree) 
{ 
    if (tree != null) 
    { 
     print(tree.left); 
     System.out.println(tree.data); 
     print(tree.right); 
    } 
} 

@SuppressWarnings("unchecked") 
Node insert(Node tree, Comparable x) 
{ 
    if (tree == null) 
    { 
     return new Node(x); 
    } 

    if (x.compareTo(tree.data) < 0) 
    { 
     tree.left = insert(tree.left, x); 
     return tree; 
    } 
    else 
    { 
     tree.right = insert(tree.right, x); 
     return tree; 
    } 
} 

}

Nodeクラス:

public class Node { 
    public Comparable data; 
    public Node left; 
    public Node right; 

    Node(Comparable newdata) { 
     data = newdata; 
    } 
} 

私が呼び出したときの結果をプリントアウトしてみてください "印刷();"ボイドのメインクラスでは、ツリーにすべての値を挿入した後には何も表示されません。個々のメソッドを個別に呼び出すと、それらは機能しますが、メインクラスから呼び出しようとしたときは機能しません。これが起こっている理由は何ですか?大変ありがとうございます

+7

投票に参加してください:検査であなたのコードのエラーを見つけ出すことは、生産的ではありません。デバッガやprintステートメントを使用して問題を特定(または少なくとも分離)してから、さらに具体的な質問に戻ってください(10行[テストケース](http: /sscce.org))。 –

+1

'public void main()' ..何のエラーもありませんか? – vidit

+0

それは正しいです。そして、どこでデバッガを使用するのでしょうか? – svsav

答えて

4

主な方法はありません。メインメソッドのシグネチャを次のように変更します。

これを再実行します。

関連する問題