后缀转中缀python_Python中的中缀到后缀转换

我已经开始用Python解决数据结构问题。我正在实现中缀到后缀,但无法调试程序中的错误。我执行join操作的最后一个返回语句的输入类型是NONE。

当我开始调试时,我发现在这部分代码中,第一个push操作(for*)之后出现了问题。之后,当我对它执行pop()时,它将不返回任何值,而不是返回*。有人能指出,这里有什么错吗?*else:

while (not s.isEmpty()) and (prec[s.peek()] >= prec[token]):

#print token

outlst.append(s.pop())

#print outlst

s.push(token)

print (s.peek())*

中缀到后缀转换:from StackClass import StackClass

def infixtopostfix(infixexpr):

s=StackClass()

outlst=[]

prec={}

prec['/']=3

prec['*']=3

prec['+']=2

prec['-']=2

prec['(']=1

oplst=['/','*','+','-']

tokenlst=infixexpr.split()

for token in tokenlst:

if token in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' or token in '0123456789':

outlst.append(token)

elif token == '(':

s.push(token)

elif token == ')':

topToken=s.pop()

while topToken != '(':

outlst.append(topToken)

topToken=s.pop()

else:

while (not s.isEmpty()) and (prec[s.peek()] >= prec[token]):

#print token

outlst.append(s.pop())

#print outlst

s.push(token)

print (s.peek())

while not s.isEmpty():

opToken=s.pop()

outlst.append(opToken)

#print outlst

return outlst

#return " ".join(outlst)

print (infixtopostfix("A * B + C * D"))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值