2015-05-31 11:55:18 +03:00
|
|
|
package com.iluwatar.nullobject;
|
2015-03-04 22:59:42 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Implementation for binary tree's normal nodes.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public class NodeImpl implements Node {
|
|
|
|
|
|
|
|
private final String name;
|
|
|
|
private final Node left;
|
|
|
|
private final Node right;
|
|
|
|
|
|
|
|
public NodeImpl(String name, Node left, Node right) {
|
|
|
|
this.name = name;
|
|
|
|
this.left = left;
|
|
|
|
this.right = right;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getTreeSize() {
|
|
|
|
return 1 + left.getTreeSize() + right.getTreeSize();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Node getLeft() {
|
|
|
|
return left;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Node getRight() {
|
|
|
|
return right;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getName() {
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void walk() {
|
|
|
|
System.out.println(name);
|
|
|
|
if (left.getTreeSize() > 0) {
|
|
|
|
left.walk();
|
|
|
|
}
|
|
|
|
if (right.getTreeSize() > 0) {
|
|
|
|
right.walk();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|