Чтение на стеках, поэтому я опробовал это упражнение Infix для Postfix (найдено here). Вам придется немного прокрутить, чтобы увидеть их код. Я старался оставаться верным своей первоначальной реализации, насколько это возможно.Почему мой список не заполняется? IndexError: List Out of Range
Мой код: http://pastebin.com/dG4Ku14n
Я получаю сообщение об ошибке в строке 18 (где я определяю переменную PEEK). Он говорит, что список вне диапазона, но я не должен был называть этот список еще? Не следует ли это просто хранить в переменной, и фактическая ошибка должна появиться позже в документе, когда я использую «prec [peek]» в строке 49?
Я уверен, что этот код более fubar, чем я понимаю. Любая помощь будет оценена по достоинству. Должен ли я начать все сначала?
Короткая версия:
peek = operator_stack[len(operator_stack)-1]
for element in infix:
if:
#code
else:
while not operator_stack and prec[peek] >= prec[element]:
output_queue.append(operator_stack.pop())
operator_stack.append(element)
Ожидаемый результат:
A B * C + D *
Пожалуйста уменьшить свой код на [короткий, самодостаточного, правильный пример] (http://sscce.org/) и включить его непосредственно в вопрос. –
, пожалуйста, напишите свой ожидаемый результат –
добавил ожидаемый результат –