2012-03-10 89 views
5

Ở đây tôi đang cố gắng thực hành tạo cây nhị phân để tôi có thể thực hiện các thao tác khác nhau với chúng.JAVA: cây nhị phân

import java.util.*; 
import java.lang.*; 


public class Main { 

public static void main(String[] args) { 

} 
} 

//Building Binary Trees 
class bTree { 

static class Node { //remember to initilize a root 

    String value; 
    Node left, right; 

    Node(String value, Node left, Node right) { 
     this.value = value; 
     this.left = left; 
     this.right = right; 
    } 
    Node(String value) //THIS IS A SIBLING CONSTRUCTOR 
    { 
     this(value, null, null); 
    } 

    Node root = new Node("ROOT"); 
    Node lefty = new Node("LEFT0"); 
    Node righty = new Node("RIGHT0"); 
    root.left = lefty; 
    root.right = righty; 
} 
Node root = null; 
} 

Tại sao tôi gặp lỗi: Số nhận dạng được mong đợi ở phân bổ root.left và root.right?

Cảm ơn!

Trả lời

3

Các câu lệnh gán

root.left = lefty; 
root.right = righty; 

không được phép vào mức độ lớp. Bạn có thể đạt được hiệu quả mà bạn muốn thay đổi dòng

Node root = new Node("ROOT"); 

này để này

Node root = new Node("ROOT", lefty, righty); 

mà lợi dụng constructor ba lập luận của bạn. Tuy nhiên, bạn có thể muốn xem xét lại vị trí của root, leftyrighty. Chúng có thể được dự định trong lớp bTree. Ngoài ra, có một quy ước khuyến khích lớp đặt tên viết hoa chữ cái đầu tiên của mỗi từ, ví dụ: BinaryTree.

+1

gỡ lỗi tốt đẹp. 1 cho câu trả lời nhanh hơn. – Juvanis

+0

Vì vậy, tôi không hiểu sau đó. Làm thế nào tôi có thể thay đổi các thuộc tính trái và phải của nút trong suốt chương trình? EDIT: Nevermind, tôi đã nhận nó! –