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

Method query

animations/segmenttree.py:218–239  ·  view source on GitHub ↗
(self, node, l, r)

Source from the content-addressed store, hash-verified

216 super().__init__(**kwargs)
217
218 def query(self, node, l, r):
219 if node.l == l and node.r == r:
220 self.play(self.tree.get_node(node.id).set_color, BLUE)
221 self.show_message("找到区间[%d, %d]"%(l, r))
222 self.wait()
223 return node.v
224 m = math.floor((node.l+node.r)/2)
225 #
226 if r <= m:
227 arrow = self.tree.get_edge(node.id, node.left.id)
228 self.play(arrow.set_color, BLUE)
229 return self.query(node.left, l, r)
230 elif l >m:
231 arrow = self.tree.get_edge(node.id, node.right.id)
232 self.play(arrow.set_color, BLUE)
233 return self.query(node.right, l, r)
234
235 arrow = self.tree.get_edge(node.id, node.left.id)
236 self.play(arrow.set_color, BLUE)
237 arrow = self.tree.get_edge(node.id, node.right.id)
238 self.play(arrow.set_color, BLUE)
239 return self.query(node.left, l, m)+self.query(node.right, m+1, r)
240
241
242 def construct(self):

Callers 1

constructMethod · 0.95

Calls 3

get_nodeMethod · 0.45
show_messageMethod · 0.45
get_edgeMethod · 0.45

Tested by

no test coverage detected