class Node {
int data;
Node left, right;
public Node(int item) {
data = item;
left = right = null;
}
}
class BinaryTree {
Node root;
BinaryTree() {
root = null;
}
// Método para percorrer a árvore em ordem
void inorder(Node node) {
if (node != null) {
inorder(node.left);
System.
out.
print(node.
data + " "); inorder(node.right);
}
}
// Método para percorrer a árvore em pré-ordem
void preorder(Node node) {
if (node != null) {
System.
out.
print(node.
data + " "); preorder(node.left);
preorder(node.right);
}
}
// Método para percorrer a árvore em pós-ordem
void postorder(Node node) {
if (node != null) {
postorder(node.left);
postorder(node.right);
System.
out.
print(node.
data + " "); }
}
public static void main
(String[] args
) { BinaryTree tree = new BinaryTree();
// Construção da árvore
tree.root = new Node(40);
tree.root.left = new Node(20);
tree.root.right = new Node(60);
tree.root.left.left = new Node(10);
tree.root.left.right = new Node(30);
tree.root.right.left = new Node(50);
tree.root.right.right = new Node(70);
System.
out.
println("Em-ordem:"); tree.inorder(tree.root);
System.
out.
println("\nPré-ordem:"); tree.preorder(tree.root);
System.
out.
println("\nPós-ordem:"); tree.postorder(tree.root);
}
}
Y2xhc3MgTm9kZSB7CiAgICBpbnQgZGF0YTsKICAgIE5vZGUgbGVmdCwgcmlnaHQ7CgogICAgcHVibGljIE5vZGUoaW50IGl0ZW0pIHsKICAgICAgICBkYXRhID0gaXRlbTsKICAgICAgICBsZWZ0ID0gcmlnaHQgPSBudWxsOwogICAgfQp9CgpjbGFzcyBCaW5hcnlUcmVlIHsKICAgIE5vZGUgcm9vdDsKCiAgICBCaW5hcnlUcmVlKCkgewogICAgICAgIHJvb3QgPSBudWxsOwogICAgfQoKICAgIC8vIE3DqXRvZG8gcGFyYSBwZXJjb3JyZXIgYSDDoXJ2b3JlIGVtIG9yZGVtCiAgICB2b2lkIGlub3JkZXIoTm9kZSBub2RlKSB7CiAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkgewogICAgICAgICAgICBpbm9yZGVyKG5vZGUubGVmdCk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQobm9kZS5kYXRhICsgIiAiKTsKICAgICAgICAgICAgaW5vcmRlcihub2RlLnJpZ2h0KTsKICAgICAgICB9CiAgICB9CgogICAgLy8gTcOpdG9kbyBwYXJhIHBlcmNvcnJlciBhIMOhcnZvcmUgZW0gcHLDqS1vcmRlbQogICAgdm9pZCBwcmVvcmRlcihOb2RlIG5vZGUpIHsKICAgICAgICBpZiAobm9kZSAhPSBudWxsKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQobm9kZS5kYXRhICsgIiAiKTsKICAgICAgICAgICAgcHJlb3JkZXIobm9kZS5sZWZ0KTsKICAgICAgICAgICAgcHJlb3JkZXIobm9kZS5yaWdodCk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIE3DqXRvZG8gcGFyYSBwZXJjb3JyZXIgYSDDoXJ2b3JlIGVtIHDDs3Mtb3JkZW0KICAgIHZvaWQgcG9zdG9yZGVyKE5vZGUgbm9kZSkgewogICAgICAgIGlmIChub2RlICE9IG51bGwpIHsKICAgICAgICAgICAgcG9zdG9yZGVyKG5vZGUubGVmdCk7CiAgICAgICAgICAgIHBvc3RvcmRlcihub2RlLnJpZ2h0KTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChub2RlLmRhdGEgKyAiICIpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgQmluYXJ5VHJlZSB0cmVlID0gbmV3IEJpbmFyeVRyZWUoKTsKICAgICAgICAvLyBDb25zdHJ1w6fDo28gZGEgw6Fydm9yZQogICAgICAgIHRyZWUucm9vdCA9IG5ldyBOb2RlKDQwKTsKICAgICAgICB0cmVlLnJvb3QubGVmdCA9IG5ldyBOb2RlKDIwKTsKICAgICAgICB0cmVlLnJvb3QucmlnaHQgPSBuZXcgTm9kZSg2MCk7CiAgICAgICAgdHJlZS5yb290LmxlZnQubGVmdCA9IG5ldyBOb2RlKDEwKTsKICAgICAgICB0cmVlLnJvb3QubGVmdC5yaWdodCA9IG5ldyBOb2RlKDMwKTsKICAgICAgICB0cmVlLnJvb3QucmlnaHQubGVmdCA9IG5ldyBOb2RlKDUwKTsKICAgICAgICB0cmVlLnJvb3QucmlnaHQucmlnaHQgPSBuZXcgTm9kZSg3MCk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW0tb3JkZW06Iik7CiAgICAgICAgdHJlZS5pbm9yZGVyKHRyZWUucm9vdCk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5QcsOpLW9yZGVtOiIpOwogICAgICAgIHRyZWUucHJlb3JkZXIodHJlZS5yb290KTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblDDs3Mtb3JkZW06Iik7CiAgICAgICAgdHJlZS5wb3N0b3JkZXIodHJlZS5yb290KTsKICAgIH0KfQo=