Sad sam shvatio da imaš izraz u postfixu, pa je ne moguće da se jave zagrade, a pod pretpostavkom da se javljaju samo pomenute aritmetičke operacije:
1. Definišeš strukturu koja će ti predstavljati Node drveta
2. Inicijalizuješ stack S takvih Node-ova.
3. Radiš po algoritmu:
Code:
while (op = get_next_char(INPUT) != NULL)
if ( op == operand )
n = new(Node)
printable_data(n) = op
PUSH(n, S)
else if ( op == operator )
n1 = POP(S)
n2 = POP(S)
n = new(Node)
left_child(n) = n1
right_child(n) = n2
printable_data(n) = op
PUSH(n, S)
end_if
end_while
Na kraju bi na stacku S trebao da ostane samo koren ovog drveta...
Da bi prikazala izraz u postfixu, obiđeš drvo po postorder poretku, a da bi ga prikazala u infixu, obiđeš ga po inorder poretku.
And don't be mad at me for crying for humanity,
call it pretensions but I got good intentions,
to keep my sanity, I'm hoping, fuck, there's gotta be
an answer to their strategies and their evil inventions... ~Looptroop