Tuesday, 31 October 2017

Find out Linked List is Palindrome or not ?

/**
 * Palindrome Linked List (Recursive)
 *
 * @author:http://javainterviewprograms.blogspot.in/
 *
 */
public class Palindrom_LinkedList_Recursive {

          static ListNode left=null;
         
          public static void main(String[] args) {
                  
                   Linked_list ll = new Linked_list();
                   ll.InsertAtEnd(10);
                   ll.InsertAtEnd(20);
                   ll.InsertAtEnd(30);
                   ll.InsertAtEnd(20);
                   ll.InsertAtEnd(10);
                  
                   System.out.println("Is Palindrome:"+IsPalindrome(ll.getStart()));

          }

          private static boolean IsPalindrome(ListNode head) 
       {
                  
                   left = head;
                  
                   return IsPalindromeUtil(head);
          }

          private static boolean IsPalindromeUtil(ListNode head) 
       {
                  
                   if(head == null) return true;
                  
                   boolean b = IsPalindromeUtil(head.getNext()) && (left.getData()                        == head.getData());
                  
                   left = left.getNext();
                  
                   return b;
          }

}

Output:

Is Palindrome:true

Find Height of a Tree

/**
 * Find Height of a Tree
 *
 * @author:http://javainterviewprograms.blogspot.in/
 *
 */
public class Height_Of_The_Tree {

          public static void main(String[] args) {

                   // Binary search tree

                   Binary_Tree tree = new Binary_Tree();

                   tree.addNode(50);
                   tree.addNode(40);
                   tree.addNode(60);
                   tree.addNode(30);
                   tree.addNode(45);
                   tree.addNode(55);
                   tree.addNode(54);
                   tree.addNode(20);
                   tree.addNode(10);

                   // root.PreOrderTraversal();
                   int height = HeightOfTree(tree.getRoot());
                   System.out.println("Height Of Tree:" + height);

                   // Level Order Traversal Without Stack

                   LevelOrderTraversal(tree.getRoot(), height);

          }

          public static void LevelOrderTraversal(BSTNode root, int height) 
        {
                   for (int i = 1; i <= height; i++) {
                             LevelOrderTraversalUtil(root, i, 1);
                             System.out.println();
                   }
          }

          private static void LevelOrderTraversalUtil(BSTNode root, int level, int i) 
       {
                   if (root == null)
                             return;

                   if (i == level) {
                             System.out.print(root.data + " ");
                             // System.out.print(" data:"+root.data +" "+" level:"+level);
                   }
                   i++;
                   LevelOrderTraversalUtil(root.left, level, i);
                   LevelOrderTraversalUtil(root.right, level, i);
          }

          public static int HeightOfTree(BSTNode root)
        {

                   if (root == null) {
                             return 0;
                   }

                   int letfHeight = HeightOfTree(root.left);
                   int rightHeight = HeightOfTree(root.right);

                   if (letfHeight > rightHeight)
                             return 1 + letfHeight;

                   else
                             return 1 + rightHeight;

          }

}


Output:
Height Of Tree:5
50
40 60
30 45 55
20 54
10




Thursday, 19 October 2017

Example of Serialization/Deserialization

package com.test.yuvagen.basic;

/**
 * Implements Serializable
 *
 * @author:http://javainterviewprograms.blogspot.in/
 *
 */
import java.io.*;

class Demo implements Serializable
{
    public int a;
    public String b;
         
    // Default constructor
    public Demo(int a, String b)
    {
        this.a = a;
        this.b = b;
    }

}

class Test
{
    public static void main(String[] args)
    {  
        Demo object = new Demo(1, "saurabh");
        String filename = "file.ser";
        
        // Serialization
        try
        {  
            //Saving of object in a file
            FileOutputStream file = new FileOutputStream(filename);
            ObjectOutputStream out = new ObjectOutputStream(file);
            
            // Method for serialization of object
            out.writeObject(object);
            
            out.close();
            file.close();
            
            System.out.println("Object has been serialized");

        }
        
        catch(IOException ex)
        {
            System.out.println("IOException is caught");
        }


        Demo object1 = null;

        // Deserialization
        try
        {  
            // Reading the object from a file
            FileInputStream file = new FileInputStream(filename);
            ObjectInputStream in = new ObjectInputStream(file);
            
            // Method for deserialization of object
            object1 = (Demo)in.readObject();
            
            in.close();
            file.close();
            
            System.out.println("Object has been deserialized ");
            System.out.println("a = " + object1.a);
            System.out.println("b = " + object1.b);
        }
        
        catch(IOException ex)
        {
            System.out.println("IOException is caught");
        }
        
        catch(ClassNotFoundException ex)
        {
            System.out.println("ClassNotFoundException is caught");
        }

    }
}

Output :
Object has been serialized
Object has been deserialized
a = 1

b = saurabh

Find out missing number from a series ?

package com.test.yuvagen.basic;

/**
 * Find Out 
Missing Number from series
 *
 * @author:http://javainterviewprograms.blogspot.in/
 *
 */
//Find out the missing number from a series
public class FindMissingNumber {
          /*
           *  For a Arithmetic Series (1, 2 3 ....n) | a(n)=a(1)+d*(n-1) ,where d is
           * difference in terms // sum=(n/2)*(a(1)+a(n))
           */
         
          // Method to determine missing number
          void findNumber(int[] series) {
                   // Assuming only one Number is missing
                   int lengthOfSeries = series.length + 1;

                   int sumOfSeries = 0;
                   int totalSum = 0;
                   sumOfSeries = ((lengthOfSeries) * (series[0] + series[series.length - 1])) / 2;

                   System.out.println("sumOfSeries :" + sumOfSeries);
                   for (int i = 0; i < series.length; i++) {

                             totalSum = totalSum + series[i];
                   }
                   System.out.println("totalSum :" + totalSum);
                   int missingNumber = sumOfSeries - totalSum;
                   System.out.println("Missing Number :" + missingNumber);
          }

          public static void main(String args[]) {
                   // int series[] = { 1, 2, 3, 4, 5, 6, 8, 9, 10, 11 };
                   int series[] = { -3, 0, 3, 6, 9, 12, 18, 21, 24 };
                   FindMissingNumber FMN = new FindMissingNumber();
                   FMN.findNumber(series);

          }
}

Output :
sumOfSeries :105
totalSum :90

Missing Number :15

Difference between final, finally and finalize()?

final :Final is a keyword. Final is used to apply restrictions on class, method and variable. Final class can't be inherited, final ...