| 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 | |