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

Method levelorder

publication/code/chapter08/binary_tree.rs:240–262  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

238 }
239
240 fn levelorder(&self) {
241 let size = self.size();
242 let mut q = Queue::new(size);
243
244 // 根节点入队列
245 let _r = q.enqueue(Box::new(self.clone()));
246 while !q.is_empty() {
247 // 出队首节点,输出值
248 let front = q.dequeue().unwrap();
249 println!("key: {:?}", front.get_key());
250
251 // 找子节点并入队
252 match front.get_left() {
253 Some(left) => { let _r = q.enqueue(left); },
254 None => {},
255 }
256
257 match front.get_right() {
258 Some(right) => { let _r = q.enqueue(right); },
259 None => {},
260 }
261 }
262 }
263
264 // 按照节点位置返回节点组成的字符串表达式: 内部实现
265 fn iexp(&self) -> String {

Callers 1

orderFunction · 0.45

Calls 6

sizeMethod · 0.45
enqueueMethod · 0.45
is_emptyMethod · 0.45
dequeueMethod · 0.45
get_leftMethod · 0.45
get_rightMethod · 0.45

Tested by

no test coverage detected