Je suis nouveau aux arbres et ai des problèmes avec le code ci-joint, quand j'imprime l'arbre, mes symboles arithmétiques affichent comme 0's.Je dois créer un arbre d'expression binaire qui stocke l'expression 2 + 4 - 3 en java
Quelqu'un pourrait-il nous éclairer sur ce morceau de code? Merci!
Voici ma classe de noeud:
class Node
{
Node left;
Node right;
int data;
char data1;
Node(int newData)
{
left = null;
right = null;
data = newData;
}
Node(char newData)
{
left = null;
right = null;
data1 = newData;
}
}
Voici ma classe de test:
public class Ex23d
{
public static void main(String[] args){
Node root = new Node('+');
root.left = new Node(2);
root.right = new Node('-');
Node r2 = root.right;
r2.left = new Node(4);
r2.right = new Node(3);
printTree(root);
}
public static void printTree()
{
printTree();
System.out.println();
}
public static void printTree(Node node)
{
if (node == null) return;
printTree(node.left);
System.out.print(node.data + " ");
printTree(node.right);
}
}
Ma sortie devrait ressembler à ceci.
Sortie:
2 0 4 0 3
vous ne l'utilisez « node.data1 » qui est la propriété qui contient les caractères. –
Notez que nous évaluons normalement de gauche à droite pour les opérateurs à distance égale comme (+, -) ou (*, /). L'ordre d'évaluation est donc (2 + 4) -3. Dans les arbres, nous effondrons les feuilles d'abord, donc la racine serait - alors. Mais je ne suis pas au fond des arbres, peut-être y a-t-il une manière alternative de résoudre un tel arbre, où votre approche est bonne. –