Comment implémenter un arbre d'expression binaire en Java?

binary-tree expression-trees java

Question

Je me bats pour créer un arbre d'expression binaire et je n'ai pas trouvé exactement ce que je cherchais en ligne.

Réponse acceptée

Pour le mettre en œuvre, commencez par une structure contenant ses propres enfants.

public class Node {
  public Node left;
  public Node right;
  public String payload;

  Node(String payload){
    left = null;
    right = null;
    this.payload = payload;
  }

  Node(Node left, Node right, String payload){
    this.left = left;
    this.right = right;
    this.payload = payload;
  }
}

Utilisez ensuite une méthode récursive pour renvoyer le résultat à la méthode appelée.

int total(Node point){
    if (point == null) return 0;
    switch (point.payload){
        case "+": return total(point.left) + total(point.right);
        case "-": return total(point.left) - total(point.right);
        case "/": return total(point.left) / total(point.right);
        case "*": return total(point.left) * total(point.right);
        default: return Integer.parseInt(point.payload);
    }
}



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi