19 releases

0.7.1 Apr 15, 2023
0.6.3 Apr 14, 2023
0.6.2 Feb 11, 2022
0.6.1 Sep 19, 2020

#243 in Data structures

Download history 85/week @ 2024-02-19 112/week @ 2024-02-26 184/week @ 2024-03-04 101/week @ 2024-03-11 47/week @ 2024-03-18

449 downloads per month
Used in 3 crates

MIT license

120KB
3K SLoC

AVL Tree Map and Set in Rust

Build and test

An ordered map and set implemented with an AVL tree (nearly balanced binary search tree) in Rust.

use avl::AvlTreeMap;

let mut map = AvlTreeMap::new();
map.insert(0, "zero");
map.insert(1, "one");
map.insert(2, "two");
assert_eq!(map.get(&1), Some(&"one"));
map.remove(&1);
assert!(map.get(&1).is_none());


use avl::AvlTreeSet;

let mut set = AvlTreeSet::new();
set.insert(0);
set.insert(1);
set.insert(2);
assert_eq!(set.get(&1), Some(&1));
set.remove(&1);
assert!(set.get(&1).is_none());

This is solely to get practice with the dark art of unsafe Rust. For all common purposes one of the standard library collections should be preferable.


lib.rs:

Dictionary data structures implemented with an AVL tree (nearly balanced binary search tree).

No runtime deps