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

Method move_up

code/chapter07/binary_heap.rs:111–125  ·  view source on GitHub ↗

小数据上冒 c(child), p(parent)

(&mut self, mut c: usize)

Source from the content-addressed store, hash-verified

109
110 // 小数据上冒 c(child), p(parent)
111 fn move_up(&mut self, mut c: usize) {
112 loop {
113 // 计算当前节点的父节点位置
114 let p = parent!(c);
115 if p <= 0 { break; }
116
117 // 当前节点数据小于父节点数据,交换
118 if self.data[c] < self.data[p] {
119 self.data.swap(c, p);
120 }
121
122 // 父节点成为当前节点
123 c = p;
124 }
125 }
126
127 // 大数据下沉 l(left), r(right)
128 fn move_down(&mut self, mut c: usize) {

Callers 1

pushMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected