import java.util.Queue; import java.util.LinkedList; public class TreeTraverse { private static class Node { public Node left; public Node right; public T data; public Node(T data) { this.data = data; } public Node getLeft() { return this.left; } public void setLeft(Node left) { this.left = left; } public Node getRight() { return this.right; } public void setRight(Node right) { this.right = right; } } public static void preorder(Node n) { if (n != null) { System.out.print(n.data + " "); preorder(n.getLeft()); preorder(n.getRight()); } } public static void inorder(Node n) { if (n != null) { inorder(n.getLeft()); System.out.print(n.data + " "); inorder(n.getRight()); } } public static void postorder(Node n) { if (n != null) { postorder(n.getLeft()); postorder(n.getRight()); System.out.print(n.data + " "); } } public static void levelorder(Node n) { Queue> nodequeue = new LinkedList>(); if (n != null) nodequeue.add(n); while (!nodequeue.isEmpty()) { Node next = nodequeue.remove(); System.out.print(next.data + " "); if (next.getLeft() != null) { nodequeue.add(next.getLeft()); } if (next.getRight() != null) { nodequeue.add(next.getRight()); } } } public static void main(final String[] args) { Node one = new Node(1); Node two = new Node(2); Node three = new Node(3); Node four = new Node(4); Node five = new Node(5); Node six = new Node(6); Node seven = new Node(7); Node eight = new Node(8); Node nine = new Node(9); one.setLeft(two); one.setRight(three); two.setLeft(four); two.setRight(five); three.setLeft(six); four.setLeft(seven); six.setLeft(eight); six.setRight(nine); preorder(one); System.out.println(); inorder(one); System.out.println(); postorder(one); System.out.println(); levelorder(one); System.out.println(); } }