MCPcopy
hub / github.com/networkx/networkx / insert

Method insert

networkx/utils/heaps.py:177–211  ·  view source on GitHub ↗
(self, key, value, allow_increase=False)

Source from the content-addressed store, hash-verified

175 return node.value if node is not None else default
176
177 def insert(self, key, value, allow_increase=False):
178 node = self._dict.get(key)
179 root = self._root
180 if node is not None:
181 if value < node.value:
182 node.value = value
183 if node is not root and value < node.parent.value:
184 self._cut(node)
185 self._root = self._link(root, node)
186 return True
187 elif allow_increase and value > node.value:
188 node.value = value
189 child = self._merge_children(node)
190 # Nonstandard step: Link the merged subtree with the root. See
191 # below for the standard step.
192 if child is not None:
193 self._root = self._link(self._root, child)
194 # Standard step: Perform a decrease followed by a pop as if the
195 # value were the smallest in the heap. Then insert the new
196 # value into the heap.
197 # if node is not root:
198 # self._cut(node)
199 # if child is not None:
200 # root = self._link(root, child)
201 # self._root = self._link(root, node)
202 # else:
203 # self._root = (self._link(node, child)
204 # if child is not None else node)
205 return False
206 else:
207 # Insert a new key.
208 node = self._Node(key, value)
209 self._dict[key] = node
210 self._root = self._link(root, node) if root is not None else node
211 return True
212
213 def _link(self, root, other):
214 """Link two nodes, making the one with the smaller value the parent of

Callers

nothing calls this directly

Calls 4

_cutMethod · 0.95
_linkMethod · 0.95
_merge_childrenMethod · 0.95
getMethod · 0.45

Tested by

no test coverage detected