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

Function main

publication/code/chapter08/rbtree.rs:895–991  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

893}
894
895fn main() {
896 fn basic() {
897 let mut rbt = RBTree::<usize, char>::new();
898 println!("RBTree is empty: {}", rbt.is_empty());
899
900 for (k, v) in String::from("I love you!").chars().enumerate() {
901 rbt.insert(k, v);
902 }
903
904 println!("RBTree size: {}", rbt.size());
905 println!("RBTree depth: {}", rbt.depth());
906 println!("RBTree leaves: {}", rbt.leaf_size());
907 println!("RBTree none leaf: {}", rbt.none_leaf_size());
908
909 println!("RBTree min k-v: {:?}", rbt.min());
910 println!("RBTree max k-v: {:?}", rbt.max());
911 println!("RBTree contains 10: {}", rbt.contains(&10));
912 }
913
914 fn order() {
915 let mut rbt = RBTree::<usize, u32>::new();
916 let nums = [0,1,2,3,4,5,6,7,8,9];
917 for (k, &v) in nums.iter().enumerate() {
918 rbt.insert(k, v);
919 }
920
921 println!("internal preoder:");
922 rbt.preorder();
923 println!("internal inoder:");
924 rbt.inorder();
925 println!("internal postoder:");
926 rbt.postorder();
927 println!("internal levelorder:");
928 rbt.levelorder();
929 }
930
931 fn get() {
932 let mut rbt = RBTree::<usize, char>::new();
933 for (k, v) in String::from("hello, world!").chars().enumerate() {
934 rbt.insert(k, v);
935 }
936 for (k, v) in String::from("I love you!").chars().enumerate() {
937 rbt.insert(k, v);
938 }
939
940 assert_eq!(*rbt.get(&1).unwrap(), ' ');
941 assert_eq!(*rbt.get(&4).unwrap(), 'v');
942
943 assert_eq!(*rbt.get_mut(&7).unwrap_or(&mut '*'), 'y');
944 assert_eq!(*rbt.get_mut(&10).unwrap_or(&mut '*'), '!');
945 }
946
947 fn iter() {
948 let nums = [0,1,2,3,4,5,6,7,8,9];
949
950 let mut rbt = RBTree::<usize, u32>::new();
951 for (k, &v) in nums.iter().enumerate() {
952 rbt.insert(k, v);

Callers

nothing calls this directly

Calls 6

getFunction · 0.85
basicFunction · 0.70
orderFunction · 0.70
iterFunction · 0.70
insertFunction · 0.70
deleteFunction · 0.70

Tested by

no test coverage detected