Tuesday, February 8, 2011

Data manipulating Algorithms using Arrays

/* Author : Tharanga Welihinda
 * Date :26/10/2010
 *
 */

 import java.util.*;

 public class Set_Array{
    
     public static int arrsize=22;
     public static Integer[] Numbers=new Integer[arrsize];
     public static Integer[] temp=new Integer[arrsize];
     public static int z,flage,no;
    
     public static void insert(int num){
    
         Numbers[no_elements()]=num;
         no++;
     }
     public static int no_elements()
     {
         int x=0;
         while(Numbers[x]!=null){
             x++;
         }       
         return x;
     }
    
     public static void insert(int num,int pos){
        
         for(int i=no_elements();i>pos;i--){
            
             Numbers[i]=Numbers[i-1];
         }
         Numbers[pos]=num;
         no++;
     }
    
     public static Integer[] search(int e){   
         z=0;   
         for(int x=0;x<no;x++)
         {
             if(Numbers[x]==e)
             {
                 temp[z]=x;
                 z++;
             }
         }
         return temp;
     }
    
     public static void Delete(int num){
        
         temp[0]=null;
         temp=search(num);
        
         if(temp[0]==null){
             System.out.println ("\nSorry.. No such a Element");
             return ;
         }
        
         int var=z;
         for(int e=0;e<z;e++){
        
             for(int i=temp[var-1];i<no_elements();i++){       
       
                 Numbers[i]=Numbers[i+1];
             }
             var--;
             no--;
         }
         dashes();
         printarray(Numbers);
         System.out.println ();
     }
     public static void printarray(Integer[] arr){
    
         for(int x=0;x<arr.length;x++){
             if(arr[x]!=null)
             System.out.print (arr[x]+" ");
            
         }
     }
    
     public static void arraysort(Integer[] arr){
        
         Integer[] sorted=new Integer[no];
         int s=0;
         for(int x=0;x<arr.length;x++){
             if(arr[x]!=null){
                 sorted[s]=arr[x];
                 s++;
             }
         }
         Arrays.sort(sorted);
         printarray(sorted);
     }
     public static void dashes(){
         for(int a=0;a<20;a++)
             System.out.print ("--");
             System.out.println ();
     }
    
     public static void main (String[] args) {
         try{
             do{
                 flage=1;
                 Scanner input=new Scanner(System.in);
                 System.out.print ("\nEnter number of Elements you want : ");
                 no=input.nextInt();
                 System.out.println ();
                
                 if(no<1 || no>20)
                 {
                     System.out.println ("Enter a number 1 - 20");
                     flage=0;
                 }
             }while(flage==0);
    
             Scanner input=new Scanner(System.in);

             for(int k=0;k<no;k++){
            
             System.out.print ("Enter element no "+(k)+": ");
             Numbers[k]=input.nextInt();
            
             }
            
             System.out.println ("\nYour List of Numbers are:");
             dashes();
             printarray(Numbers);
            
             System.out.print ("\n\nEnter number you want to input : ");
             int value=input.nextInt();
             System.out.print ("\nEnter the position you want\nenter 99 to skip the position : ");
             int pos=input.nextInt();
             if(pos<0 || pos>no)
                 System.out.println ("Enter the position between 0 -"+no);
            
             if(pos==99)
                 insert(value);
             else
                 insert(value,pos);
                
             System.out.println ("\nValue Inserted ...");
             dashes();
             printarray(Numbers);
            
             System.out.print ("\n\nEnter number you want to search : ");
             value=input.nextInt();
            
             search(value);
             if(temp[0]==null)
                 System.out.println ("\nSorry.. No such a Element");
             else{
                 System.out.print ("\nElemeny found in position: ");
                 printarray(temp);
                 System.out.println ();
             }
                            
             System.out.print ("\nEnter number you want to delete : ");
             value=input.nextInt();
             Delete(value);
            
             System.out.println ("\nSorted List of your array");
             dashes();
             arraysort(Numbers);
             System.out.println ();
         }
         catch(Exception e){
             System.out.println ("\n*** WRONG INPUT!.. TRY AGAIN.. ***");
            
            
                
         }
    
    }   
    
 }