FadhilR

JavaBinarySearchTreeTraversals

Jun 9th, 2021 (edited)
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.48 KB | None | 0 0
  1. //define node of the BST
  2. class Node {
  3.     int key;
  4.     Node left, right;
  5.  
  6.     public Node(int data){
  7.         key = data;
  8.         left = right = null;
  9.     }
  10. }
  11. //BST class
  12. class BST_class {
  13.     // BST root node
  14.     Node root;
  15.  
  16.     BST_class(){
  17.         root = null;
  18.     }
  19.  
  20.     //PostOrder Traversal - Left:Right:rootNode (LRn)
  21.     void postOrder(Node node)  {
  22.         if (node == null)
  23.             return;
  24.  
  25.         // first traverse left subtree recursively
  26.         postOrder(node.left);
  27.  
  28.         // then traverse right subtree recursively
  29.         postOrder(node.right);
  30.  
  31.         // now process root node
  32.         System.out.print(node.key + " ");
  33.     }
  34.     // InOrder Traversal - Left:rootNode:Right (LnR)
  35.     void inOrder(Node node)  {
  36.         if (node == null)
  37.             return;
  38.         //first traverse left subtree recursively
  39.         inOrder(node.left);
  40.  
  41.         //then go for root node
  42.         System.out.print(node.key + " ");
  43.  
  44.         //next traverse right subtree recursively
  45.         inOrder(node.right);
  46.     }
  47.  
  48.     //PreOrder Traversal - rootNode:Left:Right (nLR)
  49.     void preOrder(Node node)  {
  50.         if (node == null)
  51.             return;
  52.  
  53.         //first print root node first
  54.         System.out.print(node.key + " ");
  55.         // then traverse left subtree recursively
  56.         preOrder(node.left);
  57.         // next traverse right subtree recursively
  58.         preOrder(node.right);
  59.     }
  60.     // Wrappers for recursive functions
  61.     void postOrder_traversal()  {
  62.         postOrder(root);  }
  63.     void inOrder_traversal() {
  64.         inOrder(root);   }
  65.     void preOrder_traversal() {
  66.         preOrder(root);  }
  67. }
  68. class Main{
  69.     public static void main(String[] args) {
  70.         //construct a BST
  71.         BST_class tree = new BST_class();
  72.         /*        45
  73.                 //  \\
  74.                 10   90  
  75.                // \\
  76.                7   12      */
  77.         tree.root = new Node(45);
  78.         tree.root.left = new Node(10);
  79.         tree.root.right = new Node(90);
  80.         tree.root.left.left = new Node(7);
  81.         tree.root.left.right = new Node(12);
  82.         //PreOrder Traversal
  83.         System.out.println("BST => PreOrder Traversal:");
  84.         tree.preOrder_traversal();
  85.         //InOrder Traversal
  86.         System.out.println("\nBST => InOrder Traversal:");
  87.         tree.inOrder_traversal();
  88.         //PostOrder Traversal
  89.         System.out.println("\nBST => PostOrder Traversal:");
  90.         tree.postOrder_traversal();
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment