后缀转中缀python_中缀到后缀的转换器python2.7

我试图在python中创建一个用于家庭作业的中缀到后缀的转换器,我在网上找到了多个看起来足够简单的转换器,但没有一个满足我需要的要求。我必须使用以下课程:class Token(object):

UNKNOWN = 0 # unknown

INT = 4 # integer

MINUS = 5 # minus operator

PLUS = 6 # plus operator

MUL = 7 # multiply operator

DIV = 8 # divide operator

FIRST_OP = 5 # first operator code

def getPrecedence(self):

if self is '(':

return 0

elif self is '+'or '-':

return 1

elif self is '*' or '/':

return 2

else:

return 3

def _init_(self, value):

if type(value) == int:

self._type = Token.INT

else:

self._type = self._makeType(value)

self._value = value

def isOperator(self):

return self._type >= Token.FIRST_OP

def _str_(self):

return str(self._value)

def getType(self):

return self._type

def getValue(self):

return self._value

def _makeType(self, ch):

if ch == '*': return Token.MUL

elif ch == '/': return Token.DIV

elif ch == '+': return Token.PLUS

elif ch == '-': return Token.MINUS

else: return Token.UNKNOWN;

我不得不添加getPrecedence():方法,它返回一个表示运算符优先级的整数。我还必须使用以下课程:

^{pr2}$

我必须编写一个程序,将中缀表达式转换为后缀表达式。这个程序应该使用Token和Scanner类(我在上面已经包括了)。程序应该包括一个预处理输入和输出的主函数和一个名为IFToPFConverter的类。main函数接收一个输入字符串,然后用它创建一个扫描仪。扫描器然后作为参数传递给converter对象的构造函数。然后运行converter objects convert方法来转换中缀表达式。此方法返回表示后缀字符串的标记列表。然后main函数显示这个字符串。以下是我目前所掌握的情况:from arrayStack import ArrayStack

from token import Token

from scanner import Scanner

class IFToPFConverter(object):

def convert(self):

opStack = Stack()

postFixList = []

while self._scanner.hasNext():

currentToken = self._scanner.next()

if currentToken in '0123456789'

postFixList.append(currentToken)

elif currentToken == '(':

opStack.push(currentToken)

elif currentToken == '*':

opStack.push(currentToken)

elif currentToken == '/':

opStack.push(currentToken)

elif currentToken == '+':

opStack.push(currentToken)

elif currentToken == '-':

opStack.push(currentToken)

elif currentToken == ')':

opStack.push(currentToken)

while not opStack.isEmpty():

def main():

sourceStr = raw_input("Please enter an expression:")

scanner = Scanner(sourceStr)

conversion = IFToConverter.convert(scanner)

return conversion

main()

我不知道该怎么办,我甚至不知道我在IFToPFConverter课堂上所做的是否有效。我见过更简单的中缀到后缀转换器,我对编程相当陌生,所以这似乎有很多东西需要理解。我需要任何可能的帮助,谢谢。在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值