algorithms_edu/data_structures/balanced_tree/red_black_tree.rs
1// use std::cell::RefCell;
2// use std::rc::Rc;
3
4// #[derive(Debug, Copy, Clone)]
5// enum Color {
6// Red,
7// Black,
8// }
9
10// impl Color {
11// fn opposite(self) -> Self {
12// match self {
13// Self::Red => Self::Black,
14// Self::Black => Self::Red,
15// }
16// }
17// }
18
19// #[derive(Debug, Clone)]
20// struct Node<T: Ord + PartialEq + Eq + Clone> {
21// value: T,
22// color: Color,
23// left: Option<Rc<RefCell<Node<T>>>>,
24// right: Option<Rc<RefCell<Node<T>>>>,
25// parent: Option<Rc<RefCell<Node<T>>>>,
26// }
27
28// impl<T: Ord + PartialEq + Eq + Clone> Node<T> {
29// fn new(value: T) -> Self {
30// Self {
31// value,
32// color: Color::Red,
33// left: None,
34// right: None,
35// parent: None,
36// }
37// }
38// pub fn append(&mut self, node: Rc<RefCell<Node<T>>>) {
39
40// }
41// }