m2skills

spiral BT java

Jun 3rd, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.86 KB | None | 0 0
  1. // http://code2begin.blogspot.com
  2. // program to print given binary tree in spiral level wise traversal
  3.  
  4. /**
  5.  * Created by MOHIT on 25-05-2018.
  6.  */
  7.  
  8. import java.util.*;
  9.  
  10. // node class
  11. class node{
  12.     int data;
  13.     node left;
  14.     node right;
  15.  
  16.     // function that returns a pointer to new node
  17.     public node(int element){
  18.         this.data = element;
  19.         this.left = null;
  20.         this.right = null;
  21.        
  22.     }
  23. };
  24.  
  25. public class BinaryTree {
  26.  
  27.     // function to print the tree using spiral level wise traversal
  28.     static void spiral_traversal(node root){
  29.         if (root == null){
  30.             return;
  31.         }
  32.  
  33.         ArrayList STACK1 = new ArrayList<node>();
  34.         ArrayList STACK2 = new ArrayList<node>();
  35.  
  36.         int level = 1;
  37.         STACK1.add(root);
  38.         while(!STACK1.isEmpty() || !STACK2.isEmpty()){
  39.             System.out.print("\nNodes at level " + level + " are : ");
  40.             level += 1;
  41.             while (!STACK1.isEmpty()){
  42.                 // pop the first node from the queue
  43.                 node NODE = (node)STACK1.get(0);
  44.                 STACK1.remove(0);
  45.                 System.out.print(NODE.data + " ");
  46.                
  47.                 // push the left child on queue
  48.                 if (NODE.right != null) {
  49.                     STACK2.add(NODE.right);
  50.                 }
  51.                
  52.                 // push the right child on queue
  53.                 if (NODE.left != null) {
  54.                     STACK2.add(NODE.left);
  55.                 }
  56.             }
  57.            
  58.             System.out.print("\nNodes at level " + level + " are : ");
  59.             level += 1;
  60.             while (!STACK2.isEmpty()){
  61.                 // pop the first node from the queue
  62.                 node NODE = (node)STACK2.get(0);
  63.                 STACK2.remove(0);
  64.                 System.out.print(NODE.data + " ");
  65.                
  66.                 // push the left child on queue
  67.                 if (NODE.right != null) {
  68.                     STACK1.add(NODE.right);
  69.                 }
  70.                
  71.                 // push the right child on queue
  72.                 if (NODE.left != null) {
  73.                     STACK1.add(NODE.left);
  74.                 }
  75.             }
  76.         }
  77.     }
  78.  
  79.     public static void main(String arg[]) {
  80.         node head = new node(1);
  81.         head.left = new node(2);
  82.         head.right = new node(3);
  83.         head.left.left = new node(4);
  84.         head.left.right = new node(5);
  85.         head.right.right = new node(6);
  86.         head.left.left.right = new node(7);
  87.         head.right.right.left = new node(8);
  88.         head.left.left.right.left = new node(9);
  89.         head.left.left.right.left.left = new node(10);
  90.         head.right.right.left.right = new node(11);
  91.    
  92.         System.out.print("SPIRAL Level wise traversal of the above binary tree is : ");
  93.         spiral_traversal(head);
  94.     }
  95. }
Add Comment
Please, Sign In to add comment