| 893 | } |
| 894 | |
| 895 | fn 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); |