Page 1 of 1

Algoritme for postfix-form

Posted: 15/01-2007 08:47
by TurboN
Noen som kan en algoritme for å få et utrykk på postfix-form? Har vært borti jernbanealgoritmen for prefix, men har aldri en for postfix. Da jeg ville tro postfix er det idelle når man bygger en kalkulator

Posted: 15/01-2007 23:49
by Shantel
Dette er bare pseudokode, men det vil gi deg en idè om hvordan det kan gjøres.

convertToPostfix(infix)

operatorStack = new empty stack
postfix = new empty string

while (infix has characters left to parse) {
nextCharacter = next nonblank character of infix
switch (nextCharacter) {
case variable:
Append nextCharacter to postfix
break
case '^':
operatorStack.push(nextCharacter)
break
case '+': case '-': case '*': case '/':
while (!operatorStack.isEmpty() and precedence of nextCharacter
<= precedence of operatorStack.peek()) {
Append operatorStack.peek() to postfix
operatorStack.pop()
}
operatorStack.push(nextCharacter)
break
case '(':
operatorStack.push(nextCharacter)
break
case ')':
topOperator = operatorStack.pop()
while (topOperator != '(') {
Append topOperator to postfix
topOperator = operatorStack.pop()
}
break
default: break
} // end switch
} // end while

while (!operatorStack.isEmpty()) {
topOperator = operatorStack.pop()
Append topOperator to postfix
}
return postfix

Posted: 16/01-2007 22:57
by TurboN
takker, skal klare det nå