ошибка при реализации рекурсивного метода в классе Stack - PullRequest
0 голосов
/ 11 февраля 2019

Попытка реализовать стек через экземпляр очереди.невозможно получить метод top для запуска.Я новичок в Python и при попытке проверить, возникает ошибка.Может быть, я не знаю, как проверить метод, или, может быть, сам код метода неверен.Может кто-нибудь помочь мне разобраться?

class Stack:
   def __init__(self):
       self.S= ArrayQueue()

   def is_empty(self):
       return self.S.is_empty()

   def push(self,e):
       self.S.enqueue(e)

   def top(self):
       if self.S.is_empty():
           return
       else:
           item=self.S.dequeue()
           self.top(self)
           self.S.enqueue()
           self.S.first()

if __name__=='__main__':
    newStack=Stack()
    newStack.push(7)
    newStack.push(8)
    newStack.push(9)
    print(newStack.top(newStack))

Это ошибка, которую я получаю:

Traceback (most recent call last):
  File "C:/Users/Fahad/PycharmProjects/practice/venv/Q_Stack.py", line 88, in <module>
    print(newStack.top(newStack))
TypeError: top() takes 1 positional argument but 2 were given
...