2010-12-06 4 views
0

Je suis en train de créer une méthode pour créer les mots de code pour un arbre de Huffman. Le symbole du noeud pour obtenir le mot de code est transmis à la méthode. Je ne suis pas vraiment positif sur la façon de procéder, il faut retourner un int []. J'ai codé ce que je pensais pouvoir travailler. Comment est-ce que j'utilise correctement int [] pour que je puisse créer une sortie telle que 00101? MerciJava: Aide avec une méthode int [] ... concerne les arbres Huffman

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 donc je comprends l'initialisation de la taille, mais maintenant, je me demande s'il est possible à l'aide de cette façon d'imprimer quelque chose le long des lignes de 01011 ou d'autres combinaisons comme est la façon im faire l'incrément de les positions correctes dans le tableau int []. cela imprimera-t-il ce que je cherche?

+0

Vous devrez allouer de l'espace dans votre tableau de résultat, quelque chose le long des lignes de 'int [] CodeWord = new int [10],' Je ne sais pas comment vous pouvez déterminer ce que la longueur correcte est, cependant. –

+0

Pouvez-vous changer le type de retour à ArrayList ? Ou vous devez le faire pour int [] seulement? Parce que ce que je peux voir du code est, pour chaque lettre la longueur du code de Huffman serait différente ... donc vous ne pourrez pas obtenir la taille int [] jusqu'à ce que vous traversiez jusqu'à la racine ... –

+1

"doit" return int [] parce que ...? Devoirs? –

Répondre

2

Vous devez instancier le tableau d'entiers avant d'essayer d'y accéder.

Par exemple,

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

qu'est ce que 'size'? –

+0

@Babban Cela signifie ce que cela ressemble: la taille du tableau. Ce n'est pas de la magie. mat b signifie déterminer la taille requise, puis l'utiliser comme indiqué. –