MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / Deque

Class Deque

data_structures/queues/double_ended_queue.py:12–455  ·  view source on GitHub ↗

Deque data structure. Operations ---------- append(val: Any) -> None appendleft(val: Any) -> None extend(iterable: Iterable) -> None extendleft(iterable: Iterable) -> None pop() -> Any popleft() -> Any Observers --------- is_empty() -> bool Attrib

Source from the content-addressed store, hash-verified

10
11
12class Deque:
13 """
14 Deque data structure.
15 Operations
16 ----------
17 append(val: Any) -> None
18 appendleft(val: Any) -> None
19 extend(iterable: Iterable) -> None
20 extendleft(iterable: Iterable) -> None
21 pop() -> Any
22 popleft() -> Any
23 Observers
24 ---------
25 is_empty() -> bool
26 Attributes
27 ----------
28 _front: _Node
29 front of the deque a.k.a. the first element
30 _back: _Node
31 back of the element a.k.a. the last element
32 _len: int
33 the number of nodes
34 """
35
36 __slots__ = ("_back", "_front", "_len")
37
38 @dataclass
39 class _Node:
40 """
41 Representation of a node.
42 Contains a value and a pointer to the next node as well as to the previous one.
43 """
44
45 val: Any = None
46 next_node: Deque._Node | None = None
47 prev_node: Deque._Node | None = None
48
49 class _Iterator:
50 """
51 Helper class for iteration. Will be used to implement iteration.
52 Attributes
53 ----------
54 _cur: _Node
55 the current node of the iteration.
56 """
57
58 __slots__ = ("_cur",)
59
60 def __init__(self, cur: Deque._Node | None) -> None:
61 self._cur = cur
62
63 def __iter__(self) -> Deque._Iterator:
64 """
65 >>> our_deque = Deque([1, 2, 3])
66 >>> iterator = iter(our_deque)
67 """
68 return self
69

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected