0

私は、スタック クラスを利用したプレフィックス プログラムへのインフィックスに取り組んでいます。ただし、例外ハンドラーがあり、リストではなく整数自体を参照しているにもかかわらず、push() メソッドは整数を呼び出すたびに IndexError を発生させます。

スタック.py:

class stack():
    def __init__(self,n):
        self.n = n
        self.top = -1
        self.stack = [""] * n

    #...

    def push(self,c):
        try:
            print(self.top)
            self.top += 1
            self.stack[self.top] = c
        except IndexError:
            print("Stack is full.")

pip.py:

def toPrefix(input):
    instack = stack(15)
    prefix = ""

    for i in range(0,len(input)):
        for c in range(0,len(input[i])):
            if(input[i][c].isalpha()):
                instack.push(input[i][c])

エラー:

Traceback (most recent call last):
  File "<string>", line 247, in run_nodebug
  File "P:\Scripts\Python\ascl-pip.py", line 42, in <module>
    toPrefix(infix)
  File "P:\Scripts\Python\ascl-pip.py", line 37, in toPrefix
    instack.push(input[i][c])
  File "P:\Scripts\Python\stack.py", line 36, in push
    print(self.top)
IndexError: list assignment index out of range
4

1 に答える 1