MCPcopy Create free account
hub / github.com/QMHTMY/RustBook / main

Function main

publication/code/chapter08/binary_tree.rs:349–400  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

347}
348
349fn main() {
350 basic();
351 order();
352
353 fn basic() {
354 let mut bt = BinaryTree::new(10usize);
355
356 let root = bt.get_key();
357 println!("root key: {:?}", root);
358
359 bt.set_key(11usize);
360 let root = bt.get_key();
361 println!("root key: {:?}", root);
362
363 bt.insert_left_tree(2usize);
364 bt.insert_right_tree(18usize);
365
366 println!("left child: {:#?}", bt.get_left());
367 println!("right child: {:#?}", bt.get_right());
368
369 println!("min key: {:?}", bt.min().unwrap());
370 println!("max key: {:?}", bt.max().unwrap());
371
372 println!("tree nodes: {}", bt.size());
373 println!("tree leaves: {}", bt.leaf_size());
374 println!("tree internals: {}", bt.none_leaf_size());
375 println!("tree depth: {}", bt.depth());
376 println!("tree contains '2': {}", bt.contains(&2));
377 }
378
379 fn order() {
380 let mut bt = BinaryTree::new(10usize);
381 bt.insert_left_tree(2usize);
382 bt.insert_right_tree(18usize);
383
384 println!("internal pre-in-post-level order:");
385 bt.preorder();
386 bt.inorder();
387 bt.postorder();
388 bt.levelorder();
389
390 let nk = Some(Box::new(bt.clone()));
391 println!("outside pre-in-post-level order:");
392 preorder(nk.clone());
393 inorder(nk.clone());
394 postorder(nk.clone());
395 levelorder(nk.clone());
396
397 println!("internal exp: {}", bt.iexp());
398 println!("outside exp: {}", oexp(nk));
399 }
400}

Callers

nothing calls this directly

Calls 2

basicFunction · 0.70
orderFunction · 0.70

Tested by

no test coverage detected