MCPcopy Create free account
hub / github.com/douchuan/algorithm / t_rotate_left

Function t_rotate_left

src/tree/binary/rb.rs:312–343  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

310
311#[test]
312fn t_rotate_left() {
313 use crate::tree::binary::traverse::{InOrderVisitor, PreOrderVisitor};
314 use crate::tree::binary::Tree;
315
316 /*
317 10
318 / \
319 5 15
320 / \
321 14 16
322 */
323 let mut tree = Tree::default();
324 for v in vec![10, 5, 15, 14, 16] {
325 let p = unsafe { bst::insert(tree.root, v, v).ok() };
326 if tree.root.is_none() {
327 tree.root = p;
328 }
329 }
330
331 /*
332 15
333 / \
334 10 16
335 / \
336 5 14
337 */
338 unsafe {
339 tree.root = rotate_left(tree.root, tree.root.unwrap());
340 assert_eq!(PreOrderVisitor::recursive(&tree), vec![15, 10, 5, 14, 16]);
341 assert_eq!(InOrderVisitor::recursive(&tree), vec![5, 10, 14, 15, 16]);
342 }
343}
344
345#[test]
346fn t_rotate_right() {

Callers

nothing calls this directly

Calls 3

is_noneMethod · 0.80
insertFunction · 0.70
rotate_leftFunction · 0.70

Tested by

no test coverage detected