()
| 58 | |
| 59 | #[test] |
| 60 | fn delete_binary_search_tree() { |
| 61 | let mut tree = Tree::default(); |
| 62 | for v in vec![4, 3, 8, 1, 7, 16, 2, 10, 9, 14] { |
| 63 | tree.insert(v, v); |
| 64 | } |
| 65 | |
| 66 | for (v, expect) in vec![ |
| 67 | (1, vec![4, 3, 2, 8, 7, 16, 10, 9, 14]), |
| 68 | (8, vec![4, 3, 2, 9, 7, 16, 10, 14]), |
| 69 | (4, vec![7, 3, 2, 9, 16, 10, 14]), |
| 70 | ] { |
| 71 | tree.delete(&v); |
| 72 | let r = unsafe { PreOrderVisitor::iterate(&tree) }; |
| 73 | assert_eq!(r, expect); |
| 74 | } |
| 75 | } |
| 76 | |
| 77 | #[test] |
| 78 | fn bst_tree_height() { |