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

Method appendleft

data_structures/queues/double_ended_queue.py:141–181  ·  view source on GitHub ↗

Adds val to the beginning of the deque. Time complexity: O(1) >>> our_deque_1 = Deque([2, 3]) >>> our_deque_1.appendleft(1) >>> our_deque_1 [1, 2, 3] >>> our_deque_2 = Deque('bc') >>> our_deque_2.appendleft('a') >>> our_deque_2

(self, val: Any)

Source from the content-addressed store, hash-verified

139 assert not self.is_empty(), "Error on appending value."
140
141 def appendleft(self, val: Any) -> None:
142 """
143 Adds val to the beginning of the deque.
144 Time complexity: O(1)
145 >>> our_deque_1 = Deque([2, 3])
146 >>> our_deque_1.appendleft(1)
147 >>> our_deque_1
148 [1, 2, 3]
149 >>> our_deque_2 = Deque('bc')
150 >>> our_deque_2.appendleft('a')
151 >>> our_deque_2
152 ['a', 'b', 'c']
153 >>> from collections import deque
154 >>> deque_collections_1 = deque([2, 3])
155 >>> deque_collections_1.appendleft(1)
156 >>> deque_collections_1
157 deque([1, 2, 3])
158 >>> deque_collections_2 = deque('bc')
159 >>> deque_collections_2.appendleft('a')
160 >>> deque_collections_2
161 deque(['a', 'b', 'c'])
162 >>> list(our_deque_1) == list(deque_collections_1)
163 True
164 >>> list(our_deque_2) == list(deque_collections_2)
165 True
166 """
167 node = self._Node(val, None, None)
168 if self.is_empty():
169 # front = back
170 self._front = self._back = node
171 self._len = 1
172 else:
173 # connect nodes
174 node.next_node = self._front
175 self._front.prev_node = node
176 self._front = node # assign new front to the new node
177
178 self._len += 1
179
180 # make sure there were no errors
181 assert not self.is_empty(), "Error on appending value."
182
183 def extend(self, iterable: Iterable[Any]) -> None:
184 """

Callers 4

extendleftMethod · 0.95
get_shortest_pathMethod · 0.80
_set_valueMethod · 0.80
referMethod · 0.80

Calls 1

is_emptyMethod · 0.95

Tested by 1

get_shortest_pathMethod · 0.64