data_structures.queues.queue_by_two_stacks ========================================== .. py:module:: data_structures.queues.queue_by_two_stacks .. autoapi-nested-parse:: Queue implementation using two stacks Attributes ---------- .. autoapisummary:: data_structures.queues.queue_by_two_stacks._T Classes ------- .. autoapisummary:: data_structures.queues.queue_by_two_stacks.QueueByTwoStacks Module Contents --------------- .. py:class:: QueueByTwoStacks(iterable: collections.abc.Iterable[_T] | None = None) Bases: :py:obj:`Generic`\ [\ :py:obj:`_T`\ ] .. py:method:: __len__() -> int >>> len(QueueByTwoStacks()) 0 >>> from string import ascii_lowercase >>> len(QueueByTwoStacks(ascii_lowercase)) 26 >>> queue = QueueByTwoStacks() >>> for i in range(1, 11): ... queue.put(i) ... >>> len(queue) 10 >>> for i in range(2): ... queue.get() 1 2 >>> len(queue) 8 .. py:method:: __repr__() -> str >>> queue = QueueByTwoStacks() >>> queue Queue(()) >>> str(queue) 'Queue(())' >>> queue.put(10) >>> queue Queue((10,)) >>> queue.put(20) >>> queue.put(30) >>> queue Queue((10, 20, 30)) .. py:method:: get() -> _T Get `item` from the Queue >>> queue = QueueByTwoStacks((10, 20, 30)) >>> queue.get() 10 >>> queue.put(40) >>> queue.get() 20 >>> queue.get() 30 >>> len(queue) 1 >>> queue.get() 40 >>> queue.get() Traceback (most recent call last): ... IndexError: Queue is empty .. py:method:: put(item: _T) -> None Put `item` into the Queue >>> queue = QueueByTwoStacks() >>> queue.put(10) >>> queue.put(20) >>> len(queue) 2 >>> queue Queue((10, 20)) .. py:attribute:: _stack1 :type: list[_T] :value: [] .. py:attribute:: _stack2 :type: list[_T] :value: [] .. py:data:: _T