Il existe le fameux shunting-yard algorithm qui peut être utilisé pour transformer une expression infixe (telle que 1 + 2 * 3
) en une expression postfixe (telle que 1 2 2 * +
). L'algorithme de shunt-yard a besoin d'une pile pour stocker les éléments sur le point d'être déplacés.Comment estimer l'espace de pile nécessaire pour transformer une expression infixe en une expression postfixe
Est-il possible de pré-estimer la longueur de la pile nécessaire pour effectuer une traduction d'une entrée spécifique dans sa forme postfixée en temps linéaire et en mémoire constante?
exécuterait l'algorithme de triage de triage sur l'entrée, mais compter au lieu de pousser et de sauter les opérateurs se qualifier comme une réponse? –
@groovy IIRC vous devez connaître le contenu de la pile pour exécuter probablement la cour de triage, par exemple, si vous avez des parens. – fuz
bon point .. :) –