Data STructure LAb 9

#include <iostream>
using namespace std;
void merge(int left[],int right[],int arr[],int mid,int lengthmid);
int count=0;
//factorial
int fact(int n)
{
    if(n==0)
    return 1;
    else
    return fact(n-1)*n;
}
int fibon(int n)
{
    if(n==0)
    return 0;
        if(n==1)
        return 1;
        else
        return fibon(n-2)+fibon(n-1);
}
//merge sort
void mergesort(int arr[],int low,int high)
{
    int length=low+high;
    int mid=length/2;
    int left[mid];
    int right[length-mid];
    if(length<2)
    return ;
    for(int i=0;i<mid;i++)
    left[i]=arr[i];
    for(int j=mid;j<length;j++)
    right[j-mid]=arr[j];
    mergesort(left,0,mid);
    mergesort(right,0,length-mid);
    merge(left,right,arr,mid,length-mid);
   
}
//merge all
void merge(int left[],int right[],int arr[],int mid,int lengthmid)
{
int i=0,j=0,k=0;
 while(i<mid&& j<lengthmid)
 {
     if(left[i]<=right[j])
     {
         arr[k]=left[i];
        
         i++;
     }
     else
     {
         arr[k]=right[j];
        
         j++;
     }
     k++;
   
 }
 while(i<mid)
 {
     arr[k]=left[i];
     i++;
     k++;
 }
 while(j<lengthmid)
 {
     arr[k]=right[j];
     j++;
     k++;
 }
}
void TowerofHonoi(int n,char beg,char end,char aux)
{
    if(n==1)
    {
        cout<<"Move disk 1 from Rod "<<beg<<" to "<<aux<<endl;
        return;
            count++;
       
    }

    TowerofHonoi(n-1,beg,aux,end);
        count++;
    cout<<"Move disk "<<n<< " from "<<beg<<" to "<<end<<endl;
        TowerofHonoi(n-1,aux,beg,end);
        count++;
}
int main()
{
    int choice,n;
    do{
        cout<<"********************************* \n";
        cout<<"1: for Factorial of any number: \n";
        cout<<"2: for Fibonacci series \n";
        cout<<"3: for merge sort \n ";
        cout<<"4: Implementation of Tower of Hanoi  \n";
        cout<<"5: exit \n";
        cout<<"********************************* \n";
        cout<<"ENter Choice: ";
        cin>>choice;
        switch(choice)
        {
            case 1:
                {
                cout<<"ENter the number You want Factorial: ";
                cin>>n;
                cout<<"The factorial of "<<n<<" is "<<fact(n)<<endl;   
                break;
                }
                case 2:
                    {
                        int i=0;
                            cout<<"ENter the number You want Fibbonacci Series: ";
                            cin>>n;
                            cout<<"The Fibbonacci series of "<<n<<" is ";
                            while(i<n)
                            {
                            cout<<fibon(i)<<" ";
                            i++;
                            }
                            cout<<endl;
                           
                            break;
                    }
                    case 3:
                        {
                            cout<<"Enter Size of Array: ";
                            cin>>n;
                            int arr[n];
                            for(int i=0;i<n;i++)
                            {
                                cout<<"ENter Element "<<i+1<<" : ";
                                cin>>arr[i];
                            }
                            mergesort(arr,0,n);
                            cout<<"After Sorting: \n";
                            for(int i=0;i<n;i++)
                            cout<<arr[i]<<" ";
                        cout<<endl;
                        break;
                        }
                        case 4:
                            {
                                cout<<"ENter No of disks: ";
                                cin>>n;
                                TowerofHonoi(n,'A','B','C');
                                cout<<"The Number of time programs runs "<<count<<endl;
                                break;
                            }
                       
                case 5:
                    {
                        break;
                    }
                default:
                    cout<<"Invalid Input \n";
        }
    }while(choice!=5);
}

Comments

Popular posts from this blog

Computer Programming Lab 5

Computer Programming lab 11

Computer Programming Lab 4