중위 후위 전위 계산 방법 관련해서 답변 부탁드립니다


class Node:
    def __init__(self,item,link):
        self.item=item
        self.next=link

def push(item):
        global top
        global size
        top = Node(item, top)
        size += 1

def peek():
        if size != 0:
            return top.item

def pop():
        global top
        global size
        if size != 0:
            top_item = top.item
            top = top.next
            size -= 1
            return top_item

def print_stack():
        print('top -> \t',end='')
        p = top
        while p:
            if p.next != None:
                print(p.item,end='')
                print(" ")
            else:
                print(p.item,end='')
                print(" ")
            p = p.next
        print()
top = None
size = 0

여기까지가 예시로 보여준 코드이고 이 코드를 이용해서 스택을 사용한 전위, 중위, 후위 계산을 하는것이 목적입니다

temp1=0
temp2=0
postfix='4 4 3 * / 2 + 3 -'
for i in postfix:
    if i == '1':
        push(1)
    elif i == '2':
        push(2)
    elif i == '3':
        push(3)
    elif i == '4':
        push(4)
    elif i == '5':
        push(5)
    elif i == '6':
        push(6)
    elif i == '7':
        push(7)
    elif i == '8':
        push(8)
    elif i == '9':
        push(9)
    elif i == ' ':
        continue
    elif i == '+':
        temp2=pop()
        temp1=pop()
        push(temp1+temp2)
    elif i == '-':
        temp2=pop()
        temp1=pop()
        push(temp1-temp2)
    elif i == '*':
        temp2=pop()
        temp1=pop()
        push(temp1*temp2)
    elif i == '/':
        temp2=pop()
        temp1=pop()
        push(int(temp1/temp2))

    print_stack()
print("result = " + str(pop()))

이건 제가 만든 후위 계산 법인데 이와 같은 방식으로 전위하고 중위 계산을 어떻게 해야 하나요;

  • 2018년 04월 16일에 작성됨

조회수 48


Hashcode banner summercoding

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close