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

Method pop

code/chapter07/binary_heap.rs:94–108  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

92 }
93
94 fn pop(&mut self) -> Option<i32> {
95 if 0 == self.size { // 没数据,返回 None
96 None
97 } else if 1 == self.size {
98 self.size -= 1; // 一个数据,比较好处理
99 self.data.pop()
100 } else { // 多个数据,先交换并弹出数据,再调整堆
101 self.data.swap(1, self.size);
102 let val = self.data.pop();
103 self.size -= 1;
104 self.move_down(1);
105
106 val
107 }
108 }
109
110 // 小数据上冒 c(child), p(parent)
111 fn move_up(&mut self, mut c: usize) {

Callers 1

build_newMethod · 0.45

Calls 1

move_downMethod · 0.45

Tested by

no test coverage detected