Just another update

This commit is contained in:
Ingy döt Net 2015-02-20 00:35:01 -05:00
parent a25938f123
commit 00a190b0a6
6591 changed files with 94363 additions and 23227 deletions

View file

@ -2,6 +2,8 @@ template<class T>
void tree<T>::replace_all (T new_value)
{
value = new_value;
left->replace_all (new_value);
right->replace_all (new_value);
if (left != NULL)
left->replace_all (new_value);
if (right != NULL)
right->replace_all (new_value);
}

View file

@ -0,0 +1,17 @@
class Tree<T> {
T value
Tree<T> left
Tree<T> right
Tree(T value = null, Tree<T> left = null, Tree<T> right = null) {
this.value = value
this.left = left
this.right = right
}
void replaceAll(T value) {
this.value = value
left?.replaceAll(value)
right?.replaceAll(value)
}
}

View file

@ -0,0 +1,42 @@
struct TreeNode<T> {
value: T,
left: Option<Box<TreeNode<T>>>,
right: Option<Box<TreeNode<T>>>,
}
impl <T> TreeNode<T> {
fn my_map<U>(&self, f: |t: &T| -> U) -> TreeNode<U> {
TreeNode{value: f(&self.value),
left:
match self.left {
None => None,
Some(ref n) => Some(box() n.my_map(|n| f(n))),
},
right:
match self.right {
None => None,
Some(ref n) => Some(box() n.my_map(|n| f(n))),
},}
}
}
fn main() {
let root =
TreeNode{value: 3i,
left:
Some(box() TreeNode{value: 55i,
left: None,
right: None,}),
right:
Some(box() TreeNode{value: 234i,
left:
Some(box() TreeNode{value: 0i,
left: None,
right:
None,}),
right: None,}),};
root.my_map(|x| { println!("{}" , x)});
println!("---------------");
let new_root = root.my_map(|x| *x as f64 * 333.333f64);
new_root.my_map(|x| { println!("{}" , x) });
}