파이썬)제발 도와주세요 ㅠㅠ
조회수 654회
안녕하세요 !! 파이썬에서 전자계산기를 만들고 싶어서요!! 근데 리스트로 스택을 구현하는게 아니라 liked list 를 이용해서 구하고 싶습니다 ㅠㅠ 혼자 해볼려고했는데 자꾸 오류가 나서여 ㅠㅠ 자꾸 후위 표기법 전환시 제대로 안바뀌고 오류가 납니다 ㅠㅠ 도움좀 주세여 ㅠㅠㅠㅠㅠㅠㅠ
//여기에 코드를 입력하세요
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():
p= top
while p:
if p.next != None:
print(p.item)
else:
print(p.item)
p=p.next
print()
def isNumber(x):
try:
float(x)
return True
except ValueError:
return False
def infix_to_postfix(input_expr):
precedence = {}
precedence['*'] = 3
precedence['/'] = 3
precedence['+'] = 2
precedence['-'] = 2
precedence['('] = 1
result =[]
token_list =input_expr.split()
for token in token_list:
if isNumber(token)==True:
result .append(token)
elif token =='(':
push(token)
elif token == ')':
top=pop()
while top != '(':
result.append(top)
top=pop()
else:
while (len(stack) !=0) and (precedence[peek()]>=precedence[token]):
result.append(pop())
push(token)
while len(stack) != 0:
result.append(stack.pop())
stack = []
top = None
size = 0
print(infix_to_postfix('34.5 * 23.4 + 23 * ( 32 + 46 )'))
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력