Sono interessato a tutti i casi in cui algoritmo di smistamento può dire se un'espressione non è corretta scritto dal punto di vista della sintassi.
Quindi l'algoritmo Shunting-yard prende un'espressione scritta in notazione infissa e la trasforma in notazione prefisso o postfisso. Come un semplice esempio, quello preso da wikipedia: una notazione infissa di un'equazione sarebbe 3 + 4 × 2 ÷ (1 - 5) ^ 2 ^ 3 e dopo essere stata convertita in postfix con l'algoritmo diventerebbe 3 4 2 × 1 5 - 2 3 ^ ^ ÷ + .
L'algoritmo su Wikipedia verifica la presenza di parentesi non corrispondenti in due casi: Innanzitutto, se trova una parentesi quadra destra apre gli operatori fino a trovare una parentesi sinistra, se non viene trovata, ci sono parentesi non corrispondenti. In secondo luogo, dopo che tutti i token sono stati letti, apre lo stack dell'operatore nella coda di output. Se è rimasta una parentesi, ci sono parentesi non corrispondenti. Queste 2 cose possono essere fatte con l'algoritmo.
Ora per la mia espressione in notazione postfix 3 4 2 × 1 5 - 2 3 ^ ^ ÷ + come posso dire esattamente da questo che la mia notazione infisso è stata scritta correttamente? Ho pensato che dopo questa espressione viene valutato se c'è più di un elemento nello stack, allora c'è un errore. Quali altri casi dovrei prendere in considerazione?