2012-04-11 2 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; 
    } 
} 

Я пытаюсь распечатать результаты, когда я называю "печать();" в основном классе void, после вставки всех значений в дерево, но ничего не печатает. Когда я каждый раз вызываю каждый метод, они работают, но не тогда, когда я пытаюсь вызвать их из основного класса. Любые причины, почему это происходит? Большое спасибо

+7

Голосовать за закрытие: Просить незнакомых людей обнаружить ошибки в вашем коде при осмотре неэффективно. Вы должны идентифицировать (или, по крайней мере, изолировать) проблему, используя отладчик или операторы печати, а затем вернуться с более конкретным вопросом (как только вы сузили его до 10-строчного [тестового случая] (http://sscce.org)). –

+1

'public void main()' .. без ошибок? – vidit

+0

Это правильно. И где я могу найти отладчика для использования? – svsav

ответ

4

Это потому, что у вас нет основного метода. Измените подпись основного метода на:

и запустите его.

Смежные вопросы