(&self)
| 388 | } |
| 389 | |
| 390 | fn levelorder(&self) { |
| 391 | let size = self.size(); |
| 392 | let mut q = Queue::new(size); |
| 393 | |
| 394 | let _r = q.enqueue(self); |
| 395 | while !q.is_empty() { |
| 396 | let front = q.dequeue().unwrap(); |
| 397 | match front { |
| 398 | Null => (), |
| 399 | Tree(node) => { |
| 400 | println!("key: {:?}", node.key); |
| 401 | let _r = q.enqueue(&node.left); |
| 402 | let _r = q.enqueue(&node.right); |
| 403 | }, |
| 404 | } |
| 405 | } |
| 406 | } |
| 407 | } |
| 408 | |
| 409 | // 前中后层序遍历: 外部实现 |