2017-09-21 6 views
1

Ceci est une question de aws éduquer. Cela fait longtemps que j'y pense et je n'arrive vraiment à rien.utiliser un arbre binaire pour coder des expressions arithmétiques infixes sur des entiers

Vous souhaitez utiliser une arborescence binaire pour coder des expressions arithmétiques infixes sur des entiers. Les opérations sont l'addition et la multiplication. Dessinez une image de l'apparence de l'arbre. Écrivez une définition de classe. Ecrit une fonction de membre evaluate(). Comment voulez-vous faire de votre evaluate() itérative au lieu de récursive

Si je pouvais obtenir une explication qui serait bien ou un exemple trop

Répondre

0

La question vous demande d'écrire une classe d'arbre qui peut représenter des expressions comme "2 + 2" ou "3 * 1 + 5". Ainsi, la classe représente un arbre qui a une racine et des nœuds internes qui correspondent aux applications des opérateurs "*" ou "+". Les nœuds feuilles correspondront à des valeurs entières comme "5" ou "2" qui sont exploitées. Une fonction d'évaluation typique qui produirait un résultat à partir d'un tel arbre pourrait être récursive. Ils vous demandent également d'examiner comment vous pouvez arriver à un résultat itérativement. Une telle approche itérative peut consister à ajouter des nœuds successivement à une file d'attente ou à empiler une structure de données et à les faire disparaître un par un pour être traités d'une manière ou d'une autre.

Voir ici: https://en.wikipedia.org/wiki/Tree_traversal