// Java program for different tree traversals/* Class containing left and right child of current
node and key value*/classNode<T>{Tkey;Node<T>left,right;publicNode(Titem){key=item;left=right=null;}}classBinaryTree<T>{// Root of Binary TreeNode<T>root;BinaryTree(){root=null;}/* Given a binary tree, print its nodes according to the
"bottom-up" postorder traversal. */voidprintPostorder(Node<T>node){if(node==null)return;// first recur on left subtreeprintPostorder(node.left);// then recur on right subtreeprintPostorder(node.right);// now deal with the nodeSystem.out.print(node.key+" ");}/* Given a binary tree, print its nodes in inorder*/voidprintInorder(Node<T>node){if(node==null)return;/* first recur on left child */printInorder(node.left);/* then print the data of node */System.out.print(node.key+" ");/* now recur on right child */printInorder(node.right);}/* Given a binary tree, print its nodes in preorder*/voidprintPreorder(Node<T>node){if(node==null)return;/* first print data of node */System.out.print(node.key+" ");/* then recur on left sutree */printPreorder(node.left);/* now recur on right subtree */printPreorder(node.right);}// Wrappers over above recursive functionsvoidprintPostorder(){printPostorder(root);}voidprintInorder(){printInorder(root);}voidprintPreorder(){printPreorder(root);}// Driver methodpublicstaticvoidmain(String[]args){BinaryTree<Character>tree=newBinaryTree<Character>();tree.root=newNode<Character>('A');tree.root.left=newNode<Character>('B');tree.root.right=newNode<Character>('C');tree.root.right.left=newNode<Character>('E');tree.root.right.right=newNode<Character>('F');BinaryTree<Integer>treeint=newBinaryTree<Integer>();treeint.root=newNode<Integer>(1);treeint.root.left=newNode<Integer>(2);treeint.root.right=newNode<Integer>(3);treeint.root.left.left=newNode<Integer>(4);treeint.root.left.right=newNode<Integer>(5);System.out.println("Preorder traversal of binary tree is ");tree.printPreorder();System.out.println("\nInorder traversal of binary tree is ");tree.printInorder();System.out.println("\nPostorder traversal of binary tree is ");tree.printPostorder();System.out.println("\nPreorder traversal of integer binary tree is ");treeint.printPreorder();System.out.println("\nInorder traversal of integer binary tree is ");treeint.printInorder();System.out.println("\nPostorder traversal of integer binary tree is ");treeint.printPostorder();}}