2010-12-06 3 views
0

Ich mache eine Methode, um die Codewörter für einen Huffman-Baum zu erstellen. Das Symbol des Knotens, von dem das Codewort abgerufen werden soll, wird an die Methode übergeben. Ich bin nicht gerade positiv, wie das geht, es muss einen Int [] zurückgeben. Ich habe programmiert, was ich dachte, könnte funktionieren. Wie verwende ich int [] richtig, damit ich eine Ausgabe wie 00101 erstellen kann? DankJava: Hilfe mit einer int [] Methode ... hat mit Huffman Bäumen zu tun

public int[] codeWordAsAry(int k) { 
    HuffTreeNode temp; 
    int[] codeWord; 
    int pos = 0; 
    temp = leaves[k]; 
    while (temp.parentOf() != null){ 
     if (temp.isLeftChild()){ 
      codeWord[pos] = 1; 
      pos++; 
     } 
     else { //if isRightChild 
      codeWord[pos] = 0; 
      pos++; 
     } 
    } 

    return codeWord; } 

Ok, damit ich die Initialisierung der Größe verstehen, aber jetzt bin ich frage mich nur, wenn seine mögliche auf diese Weise mit etwas entlang der Linien drucken von 01011 oder anderen Kombinationen gefallen, ist die Art und Weise im den Zuwachs des Tun Positionen sind im Array int [] korrekt. Werde das ausdrucken was ich suche?

+0

Sie müssen Platz in Ihrem Ergebnisarray zuzuordnen, etwas entlang der Linien von 'int [] Codewort = new int [10];' Ich weiß nicht, wie kann man Bestimmen Sie jedoch, was die richtige Länge ist. –

+0

Können Sie den Rückgabetyp in ArrayList ändern? Oder musst du es nur für int [] tun? Denn was ich aus dem Code ersehen kann, ist, dass für jeden Buchstaben die Huffman-Codelänge anders sein würde ... also wirst du nicht in der Lage sein, die int [] - Größe zu erhalten, bis du durchquert wurdest ... –

+1

"muss" return int [] weil ...? Hausaufgaben? –

Antwort

2

Sie müssen das Integer-Array instanziieren, bevor Sie versuchen, darauf zuzugreifen.

Zum Beispiel

int[] codeWord = new int[size]; 
+0

Was ist 'Größe'? –

+0

@Babban Es bedeutet, wie es sich anhört: die Größe des Arrays. Das ist keine Magie; matt b bedeutet, die Größe zu bestimmen, die benötigt wird, und sie dann wie gezeigt zu verwenden. –