2012-03-10 15 views
5

Burada ikili ağaçların yapılmasına çalışıyorum, böylece onlarla farklı işlemler yapabilirim.JAVA: ikili ağaçlar

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; 
} 

Neden şu hatayı alıyorum: Tanımlayıcı root.left ve root.right öğesinde bekleniyor?

Teşekkürler!

cevap

3

atama ifadeleri

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

sınıf düzeyinde izin verilmez. Size üç argüman yapıcısı yararlanır bu

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

için bu satırı

Node root = new Node("ROOT"); 

değişen istediğiniz etkiyi elde edebilirsiniz. Ancak, root, lefty ve righty yerleşimlerini yeniden değerlendirmek isteyebilirsiniz. Muhtemelen bTree sınıfında tasarlanmıştır. Ayrıca, her bir kelimenin ilk harfini büyük harfle yazmayı teşvik eden bir sınıflandırma söz konusudur, örn. BinaryTree.

+1

güzel hata ayıklama. Daha hızlı cevap için +1. – Juvanis

+0

Yani anlayamıyorum o zaman. Bir düğümün sol ve sağ özelliklerini program boyunca nasıl değiştirebilirim? EDIT: Nevermind, anladım! –

İlgili konular