Найти - Пользователи
Полная версия: Реализация стека и очереди на основе дека.
Начало » Python для новичков » Реализация стека и очереди на основе дека.
1
Jughead
Здравствуйте. Будет класс дека Deque, в котором будут методы, типа pushFront/pushBack - добавить элемент в начало/конец списка, popFront/popBack - извлечь элемент из начала/конца списка, getFront/getBack - вернуть первый и последний элемент, size - кол-во элементов, clear - очистить список. И на основе этого родительского класса нужно создать класс стека Stack с методами push, pop, get, size, clear и класс очереди Queue с методами push, pop, get, size, clear. Так вот, как можно наследовать и переименовать функции из родительского класса в дочерний? Именно определенные функции, не все.
py.user.next
  
>>> class Deque:
...     
...     def pushFront(self, e):
...         print('pushFront', e)
...     
...     def popFront(self):
...         print('popFront')
...     
...     def pushBack(self, e):
...         print('pushBack', e)
...     
...     def popBack(self):
...         print('popBack')
... 
>>> class Stack(Deque):
...     
...     push = Deque.pushFront
...     pop = Deque.popFront
... 
>>> class Queue(Deque):
...     
...     push = Deque.pushBack
...     pop = Deque.popFront
... 
>>> st = Stack()
>>> st.push(1)
pushFront 1
>>> st.pop()
popFront
>>> 
>>> qu = Queue()
>>> qu.push(1)
pushBack 1
>>> qu.pop()
popFront
>>>

А для наследования можешь применить подъём к суперклассу
  
>>> class Deque:
...     
...     def pushFront(self, e):
...         print('pushFront', e)
...     
...     def popFront(self):
...         print('popFront')
...     
...     def pushBack(self, e):
...         print('pushBack', e)
...     
...     def popBack(self):
...         print('popBack')
... 
>>> class Stack(Deque):
...     
...     def __init__(self):
...         self.push = super().pushFront
...         self.pop = super().popFront
... 
>>> st = Stack()
>>> st.push(1)
pushFront 1
>>> st.pop()
popFront
>>>
Jughead
py.user.next, спасибо вам, помогли.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB