J'ai écrit deux fonctions (pseudo-code) pour calculer le nombre de nœuds et la hauteur de l'arbre d'un arbre binaire, étant donné la racine de l'arbre. Plus important encore, l'arbre binaire est représenté en tant que premier format chiled/next frère.Une question sur l'obtention du nombre de nœuds dans un arbre binaire
si
struct TreeNode
{
Object element;
TreeNode *firstChild;
TreeNode *nextSibling;
}
Calculer le nombre de nœuds:
public int countNode(TreeNode root)
{
int count=0;
while(root!=null)
{
root= root.firstChild;
count++;
}
return count;
}
public int countHeight(TreeNode root)
{
int height=0;
while(root!=null)
{
root= root.nextSibling;
height++;
}
return height;
}
C'est l'un des problèmes que j'ai vu sur un livre d'algorithme, et ma solution ci-dessus semble avoir quelques problèmes, aussi je n'ai pas tout à fait compris les points d'utilisation de cette représentation First Brain/First enfant de Binary Tree, pourriez-vous me donner quelques idées et commentaires, s'il vous plaît? À la votre!
Merci, Tomas, j'ai vraiment réalisé où est mon erreur.J'ai simplement ramassé l'une des deux branches et ignoré l'autre, ce qui est terrible !! – Kevin