pub
in heighted
This commit is contained in:
parent
d77491188b
commit
820298737e
@ -7,7 +7,7 @@ use crate::flow::{
|
|||||||
use crate::func::{context::*, *};
|
use crate::func::{context::*, *};
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
struct Node<A> {
|
pub struct Node<A> {
|
||||||
l: Tree<A>,
|
l: Tree<A>,
|
||||||
r: Tree<A>,
|
r: Tree<A>,
|
||||||
key: A,
|
key: A,
|
||||||
@ -19,7 +19,7 @@ impl<A: Display> Display for Node<A> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Reference<A> {
|
pub struct Reference<A> {
|
||||||
node: Arc<Node<A>>,
|
node: Arc<Node<A>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ impl<A: Display> Display for Reference<A> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Tree<A> {
|
pub struct Tree<A> {
|
||||||
reference: Option<Reference<A>>,
|
reference: Option<Reference<A>>,
|
||||||
height: u64,
|
height: u64,
|
||||||
}
|
}
|
||||||
@ -60,12 +60,12 @@ impl<A: Display> Display for Tree<A> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Trees<A> {
|
pub struct Trees<A> {
|
||||||
_a: PhantomData<A>,
|
_a: PhantomData<A>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<A> Trees<A> {
|
impl<A> Trees<A> {
|
||||||
fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self { _a: PhantomData }
|
Self { _a: PhantomData }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -217,16 +217,13 @@ mod tests {
|
|||||||
] {
|
] {
|
||||||
tree = trees.clone().add_tree(tree, i);
|
tree = trees.clone().add_tree(tree, i);
|
||||||
assert!(tree.balanced());
|
assert!(tree.balanced());
|
||||||
// println!("{} {}", tree.height, tree);
|
|
||||||
}
|
}
|
||||||
for i in [
|
for i in [
|
||||||
2, 9, 4, 7, 8, 10, 17, 1, 13, 15, 18, 12, 5, 0, 3, 6, 16, 19, 14, 11,
|
2, 9, 4, 7, 8, 10, 17, 1, 13, 15, 18, 12, 5, 0, 3, 6, 16, 19, 14, 11,
|
||||||
] {
|
] {
|
||||||
tree = trees.clone().remove(tree, i);
|
tree = trees.clone().remove(tree, i);
|
||||||
assert!(tree.balanced());
|
assert!(tree.balanced());
|
||||||
// println!("{} {}", tree.height, tree);
|
|
||||||
}
|
}
|
||||||
// assert!(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -238,15 +235,12 @@ mod tests {
|
|||||||
] {
|
] {
|
||||||
tree = trees.clone().add_tree(tree, i);
|
tree = trees.clone().add_tree(tree, i);
|
||||||
assert!(tree.balanced());
|
assert!(tree.balanced());
|
||||||
// println!("{} {}", tree.height, tree);
|
|
||||||
}
|
}
|
||||||
for i in [
|
for i in [
|
||||||
2, 9, 4, 7, 8, 10, 17, 1, 13, 15, 18, 12, 5, 0, 3, 6, 16, 19, 14, 11,
|
2, 9, 4, 7, 8, 10, 17, 1, 13, 15, 18, 12, 5, 0, 3, 6, 16, 19, 14, 11,
|
||||||
] {
|
] {
|
||||||
tree = trees.clone().remove(tree, i);
|
tree = trees.clone().remove(tree, i);
|
||||||
assert!(tree.balanced());
|
assert!(tree.balanced());
|
||||||
// println!("{} {}", tree.height, tree);
|
|
||||||
}
|
}
|
||||||
// assert!(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user