MCPcopy Create free account
hub / github.com/QMHTMY/RustBook / min_child

Method min_child

publication/code/chapter08/binary_heap.rs:145–160  ·  view source on GitHub ↗

计算最小子节点位置

(&self, c: usize)

Source from the content-addressed store, hash-verified

143
144 // 计算最小子节点位置
145 fn min_child(&self, c: usize) -> usize {
146 // 同时计算左右子节点位置
147 let (lc, rc) = (left_child!(c), right_child!(c));
148
149 // 1.如果右子节点位置超过 size,表示只有左子节点
150 // 则左子节点就是最小子节点
151 // 2.否则,同时存在左右子节点,需具体判断左右子
152 // 节点数据大小,然后返回最小的子节点位置
153 if rc > self.size {
154 lc
155 } else if self.data[lc] < self.data[rc] {
156 lc
157 } else {
158 rc
159 }
160 }
161}
162
163fn main() {

Callers 1

move_downMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected