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

Method levelorder

publication/code/chapter08/bst.rs:296–314  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

294 }
295
296 fn levelorder(&self) {
297 let size = self.size();
298 let mut q = Queue::new(size);
299
300 let _r = q.enqueue(Box::new(self.clone()));
301 while !q.is_empty() {
302 let front = q.dequeue().unwrap();
303 println!("key: {:?}, val: {:?}", front.key.unwrap(), front.val.unwrap());
304
305 match front.get_left() {
306 Some(left) => { let _r = q.enqueue(left); },
307 None => (),
308 }
309 match front.get_right() {
310 Some(right) => { let _r = q.enqueue(right); },
311 None => (),
312 }
313 }
314 }
315
316}
317

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