第9の資料構造スタック−計算機2の利用
Infix->postfixを変換するには、次の手順に従います.
左かっこ(の優先度が最も低い).
右活番)が最も優先度が高い.
結果値はリストouststackに、演算子はスタックopstackに、oustackに移動します.
被演算子が表示されたらoutbackに直接配置し、演算子が表示されたらopstackに配置し、優先度が自分より高いのがopstackであればpopしてpushします.入るべき時になったら、popを前に置きます.
次のコードはpseudoコードです
for each token in expr:
if token == operand:
outstack.append(token)
if token == '(':
opstack.push(token)
if token == ')':
opstack에 저장된 연산자
'('를 pop할때까지 pop
-> outstack에 append
if token in '+-*/':
opstack에서 token보다 우선순위 높은 연산자 모두 pop, 자신이 push
opstack에 남은 연산자 모두 pop -> outstack
Reference
この問題について(第9の資料構造スタック−計算機2の利用), 我々は、より多くの情報をここで見つけました https://velog.io/@chss3339/9강-자료구조-스택-활용-계산기-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol