Skip to main content

CIRCULAR QUEUE

/**
    Program Name: Circular Queue

    Description: Circular Queue using Array

    Author:  Tauqirul Haque
       
*/


int front = -1;  //This is the Initial Condition
int rear = -1;

#define SIZE 5

int queue[SIZE];

void deleteElement();
void insertElement();
void displayElement();

void main()
{
    int ch;
    while(ch !=4)
    {
        printf("\n\t\t1. Insert into queue..\n");
        printf("\t\t2. Delete From Queue...\n");
        printf("\t\t3. Diplay Queue...\n");
        printf("\t\t4. Exit Program ...\n");
       
        printf("Enter Your Choice #  ");
        scanf("%d",&ch);
       
        switch(ch)
        {
            case 1:
                    insertElement();
                    break;
            case 2:
                    deleteElement();
                    break;
            case 3:
                    displayElement();
                    break;
            case 4:
                    exit(0);
        }
    }
}

void insertElement()
{
    int item;
   
    printf("Enter The Item You want to Insert :  ");
    scanf("%d",&item);
   
    if((front ==0 && rear == SIZE -1) || (front == rear + 1))
    {
        printf("\nQUEUE Overflow .. \n\n");
        return;
    }
   
    if(front == -1)
    {
        front = rear = 0;
    }
    else
    {
        if(rear == SIZE - 1)
        {
            rear = 0;
        }
        else
        {
            rear++;
        }
    }
   
    queue[rear] = item;
   
    printf("\nRear = %d and Front = %d ", rear,front);
   
}

void deleteElement()
{
    if(front==-1)
    {
        printf("\nUnderFlow ... \n");
        return;
    }
   
    int item = queue[front];
    if(front==rear)
    {
        front =  -1;
        rear = -1;
        printf("The Item Deleted is :  %d  ",item );
        return;
    }
   
    if(front == SIZE -1)
    {
        front = 0;
    }
    else
    {
        printf("The Item Deleted is :  %d  ",item );
        front++;
    }
    printf("\nRear = %d and Front = %d ", rear,front);
   
}

void displayElement()
{
    if(front == -1)
    {
        printf("\nThe Queue is Empty .. ");
        return;
    }
    for(int i=front; i<=rear; i++)
    {
        printf("%4d", queue[i]);
    }
}
       
      

Comments

Popular posts from this blog

SIMPLE QUEUE

/**     Program Name: SIMPLE QUEUE     Description: This program is for Implementing Simple QUEUE     Author:  Tauqirul Haque         */ #define SIZE 3 int front = -1; int rear = -1; int queue[SIZE]; void deleteElement(); void insertElement(); void displayElement(); void main() {     int ch;     while(ch !=4)     {         printf("\n\t\t1. Insert into queue..\n");         printf("\t\t2. Delete From Queue...\n");         printf("\t\t3. Diplay Queue...\n");         printf("\t\t4. Exit Program ...\n");                 printf("Enter Your Choice #  ");         scanf("%d",&ch);         ...

BUBBLE SORT

/**     Program Name: BUBBLE SORT     Description: This Program sorts a Given Array in Ascending Order     Author:  Tauqirul Haque         */ #define SIZE 10 void bubbleSort(int data[SIZE]); void displayElement(int data[SIZE]); void main() {     int data[SIZE] = { 45,34,66,89,45,34,76,22,79, 12};         printf("\nThe Original Array Before Sorting ... ");     displayElement(data);         printf("\nArray After Sorting ... ");     bubbleSort(data);     displayElement(data);     } void displayElement(int data[SIZE]) {     int i;     for(i=0; i     {         printf("\nData[%d]  =  %d",i,data[i]);     }     printf("\n"); } void ...

Linux User Survey

The most popular distro is Mandriva, with 17.9% of the respondents using it, followed by Suse, with 16.2%. The most popular application is Firefox, with 47.9% of the respondents using it, followed by OpenOffice, with 31.6% and Thunderbird, with 12.0%. Also appended below is a table with the break-down of the survey participants by country. Top Distros 1 Mandriva 17.9% 2 Suse 16.2% 3 Fedora 11.1% 4 Debian 7.7% 5 Red Hat 6.8% 6 Xandros 5.1% 7 Slackware 5.1% 8 Ubuntu 3.4% 9 Centos 3.4% 10 Mepis 3.4% 11 Gentoo 3.4% 12 Knoppix 2.6% 13 Linspire 1.7% 1...