Rekursion uppstår när någonting definieras i termer av sig själv.
Dagens rekursion
#[derive(Debug, Clone, PartialEq)]
pub enum Tree<T: fmt::Display> {
Node {
value: T,
left: Box<Tree<T>>,
right: Box<Tree<T>>,
},
End,
}
impl<T: fmt::Display> fmt::Display for Tree<T> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match &self {
Tree::Node { value, left, right } => write!(f, "T({} {} {})", value, left, right),
Tree::End => write!(f, "."),
}
}
}