Mali je programcic nisam pisao komentare. Snacices se. Inace jako interesantan programcic :)
Klase:
1. Bacteria:
Code:
public class Bacteria {
public static int count = 0;
public Bacteria() {
Bacteria.count++;
}
}
2. Node:
Code:
public class Node {
private Node leftNode;
private Node rightNode;
private Bacteria bacteria;
public Node() {
bacteria = new Bacteria();
}
public void makeDivizion() {
leftNode = new Node();
rightNode = new Node();
}
public Node getLeftNode() {
return leftNode;
}
public void setLeftNode(Node leftNode) {
this.leftNode = leftNode;
}
public Node getRightNode() {
return rightNode;
}
public void setRightNode(Node rightNode) {
this.rightNode = rightNode;
}
public Bacteria getBacteria() {
return bacteria;
}
public void setBacteria(Bacteria bacteria) {
this.bacteria = bacteria;
}
}
3. Tree:
Code:
public class Tree {
private Node root;
private int numOfCycles = 0;
private List<Node> cycleNodes;
public Tree(Node root) {
this.root = root;
cycleNodes = new ArrayList<Node>();
cycleNodes.add(root);
}
public Node getRoot() {
return root;
}
public void setRoot(Node root) {
this.root = root;
}
public int getNumOfCycles() {
return numOfCycles;
}
public void setNumOfCycles(int numOfCycles) {
this.numOfCycles = numOfCycles;
}
public void makeCycles() {
while (Bacteria.count <= 10000) {
makeCycle(cycleNodes);
}
}
private void makeCycle(List<Node> cycleNodes) {
List<Node> nextCycleNodes = new ArrayList<Node>();
for (Node node : cycleNodes) {
node.makeDivizion();
nextCycleNodes.add(node.getLeftNode());
nextCycleNodes.add(node.getRightNode());
}
this.cycleNodes = nextCycleNodes;
this.numOfCycles++;
}
}
4. Test:
Code:
public class Test {
public void testMovingInTree() {
Node node = new Node();
Tree tree = new Tree(node);
tree.makeCycles();
System.out.println("Maked cycles: " + tree.getNumOfCycles());
System.out.println("Created bacteries: " + Bacteria.count);
}
}
5. Main:
Code:
public class Main {
public static void main(String[] args) {
Test test = new Test();
test.testMovingInTree();
}
}
Pozdrav