MCPcopy Create free account
hub / github.com/acm-clan/algorithm-stone / find_element

Method find_element

animations/segmenttree.py:162–186  ·  view source on GitHub ↗
(self, node, val, new_val)

Source from the content-addressed store, hash-verified

160 super().__init__(**kwargs)
161
162 def find_element(self, node, val, new_val):
163 if not node:
164 return
165 if node.l==node.r and node.v == val:
166 n = self.tree.get_node(node.id)
167 self.play(n.set_color, RED)
168 self.show_message("修改元素")
169 n.set_text(str(new_val))
170 n.set_color(RED)
171 node.v = new_val
172 return
173
174 if node.l == node.r:
175 return
176
177 self.find_element(node.left, val, new_val)
178 self.find_element(node.right, val, new_val)
179 old_v = node.v
180 node.v = node.left.v + node.right.v
181 if old_v != node.v:
182 n = self.tree.get_node(node.id)
183 self.show_message("更新元素%d -> %d"%(old_v, node.v))
184 self.play(FocusOn(n))
185 n.set_text(str(node.v))
186 self.play(n.set_color, RED)
187
188 def construct(self):
189 self.start_logo(animate=False)

Callers 1

constructMethod · 0.95

Calls 3

set_textMethod · 0.80
get_nodeMethod · 0.45
show_messageMethod · 0.45

Tested by

no test coverage detected