Programma per passare da notazione infissa a polacca inversa (postfissa).

di Anonimizzato19845 il
5 risposte
Ciao a tutti, è la prima volta che utilizzo questo forum.
Il mio problema è il seguente: devo scrivere un programma (in linguaggio C) che deve tradurre una qualsiasi espressione infissa in quella postfissa (l'espressione conterrà le parentesi). Le librerie disponibili sono solo math.h, stdio.h e stilb.h! Inoltre vi è un vincolo ossia quello di utilizzare una Stack.
Grazie in anticipo.

5 Risposte

  • Esattamente cosa possiamo dirti?
  • Ciao!
    Innanzitutto mi servirebbe sapere un algoritmo che da un'espressione infissa riesca a scrivere l'equivalente espressione postfissa. Quindi avere un idea di quello che potrebbe essere uno pseudocodice del programma! Perché non ho proprio idea di quello che devo fare.
    Grazie in anticipo!
  • Tecnicamente:
    devi realizzare un parser ricorsivo discendente per analizzare l'espressione, quindi usare lo stack per fare la valutazione dove per valutare (3 + 5*6) dovresti avere:

    push 3
    push 5
    push 6
    multiply // pop 6, pop 5 , push 5*6
    add // pop 30, pop 3, push 3+30
    pop // estrae il risultato
  • migliorabile ha scritto:


    tecnicamente:
    devi realizzare un parser ricorsivo discendente per analizzare l'espressione, quindi usare lo stack per fare la valutazione dove per valutare (3 + 5*6) dovresti avere:

    push 3
    push 5
    push 6
    multiply // pop 6, pop 5 , push 5*6
    add // pop 30, pop 3, push 3+30
    pop // estrae il risultato
    però ha detto che le espressioni contengono parentesi. inoltre, suppongo deffa dare la corretta precedenza agli operatori, per cui se ha 2*3+4 deve fare prima 2*3 e poi 5+4. Quindi in realtà la risposta più corretta mi pare il link di oregon. (inoltre, non è stata richiesta la valutazione dell'espressione, ma la conversione in notazione postfissa).
Devi accedere o registrarti per scrivere nel forum
5 risposte