创建分支节点,取t1, t2较大者的value构造parent
(
mut n1: NonNull<Node<K, V>>,
mut n2: NonNull<Node<K, V>>,
)
| 116 | |
| 117 | /// 创建分支节点,取t1, t2较大者的value构造parent |
| 118 | unsafe fn branch<K, V>( |
| 119 | mut n1: NonNull<Node<K, V>>, |
| 120 | mut n2: NonNull<Node<K, V>>, |
| 121 | ) -> NonNull<Node<K, V>> |
| 122 | where |
| 123 | K: Copy + std::cmp::Ord, |
| 124 | { |
| 125 | let v = max(n1.as_ref().key, n2.as_ref().key); |
| 126 | let node = Node::new(v, None, Some(n1), Some(n2), None); |
| 127 | n1.as_mut().parent = Some(node); |
| 128 | n2.as_mut().parent = Some(node); |
| 129 | node |
| 130 | } |
| 131 | |
| 132 | #[test] |
| 133 | fn t_build_tree() { |