(DS-4)

 4A.Write a program to implement the concept of Queue with Insert, Delete, Display and Exit operations.

#include<stdio.h>

#define size 3

void enqueue();

void dequeue();

void display();

int queue[size], front=-1, rear=-1,i;

int main()

{

int ch;

printf("-----Menu Driven-----");

do

{

printf("\n1.ENQUEUE \n2.DEQUEUE\n3.PRINT\n4.EXIT");

printf("\nEnter a choice:");

scanf("%d",&ch);

switch(ch)

{

case 1: enqueue();

break;

case 2: dequeue();

break;

case 3: display();

break;

case 4:

break;

}

}while(ch!=4);

return 0;

}

void enqueue()

{

int val;

printf("\nEnter an element to insert:");

scanf("%d",&val);

if(front==-1)

{

front++,rear++;

queue[rear]=val;

}

else if(rear==size-1)

{

printf("\nQueue is full");

}

else

{

queue[++rear]=val;

}

}

void dequeue()

{

int val;

if(front==-1)

{

printf("\nQueue is empty");

}

else if(rear==front && rear!=-1)

{

val=queue[front];

printf("\nThe value deleted is %d :",val);

front=rear=-1;

}

else

{

val=queue[front];

printf("\nValue deleted is %d ",val);

front++;

}

}

void display()

{

if(front==-1)

{

printf("\nQueue is Empty");

}

else

{

printf("\nThe Queue is :");

for(i=front ; i<=rear ; i++)

{

printf("\t %d",queue[i]);

}

}

}

4B.Write a program to implement the concept of Circular Queue.

#include<stdio.h>

#define size 3

void enqueue();

void dequeue();

void display();

int queue[size], front=-1, rear=-1,i ;

int main()

{

int ch;

printf("-----Menu Driven-----");

do

{

printf("\n1.ENQUEUE \n2.DEQUEUE\n3.PRINT\n4.EXIT");

printf("\nEnter your choice :");

scanf("%d",&ch);

switch(ch)

{

case 1: enqueue();

break;

case 2: dequeue();

break;

case 3: display();

break;

case 4:

break;

}

}while(ch!=4);

return 0;

}

void enqueue()

{

int val;

printf("\nEnter an element to insert:");

scanf("%d",&val);

if(rear==-1)

{

rear++;

queue[rear]=val;

front++;

}

else if((rear==size-1 && front==0)||(front==rear+1))

{

printf("\nQueue is full");

}

else

{

rear=(rear+1)%size;

queue[rear]=val;

}

}

void dequeue()

{

int val;

if(front==-1)

{

printf("\nQueue is empty");

}

else if(rear==front && rear!=-1)

{

val=queue[front];

printf("\nThe value deleted is %d ",val);

front=rear=-1;

}

else

{

val=queue[front];

printf("\nValue deleted is %d ",val);

front=(front+1)%size;

}

}

void display()

{

if(front==-1)

{

printf("\nQueue is Empty");

}

else

{

printf("\nThe Queue is :");

for(i=front ; i!=rear ; i=(i+1)%size)

{

printf("\t %d",queue[i]);

}

printf("\t %d",queue[i]);

}

}

4C.Write a program to implement the concept of Deque.

#include<stdio.h>

#define size 5

int queue[size],rear=-1,front=-1,te=0,x,i;


void insert_rear();

void insert_front();

void del_rear();

void del_front();

void display();


int main()

{

int opt;

do

{

printf("\n 1. Insert at rear\n 2. Insert at front \n 3. Delete from rear \n 4. Delete from front \n 5. Display \n 6. Exit");

printf("\n Enter an option:");

scanf("%d",&opt);

switch(opt)

{

case 1:insert_rear();

break;

case 2:insert_front();

break;

case 3:del_rear();

break;

case 4:del_front();

break;

case 5:display();

break;

case 6:

break; 

}

}while(opt!=6);

return 0;

}


void insert_rear()

{

int val;

printf("\n Enter value to insert at rear :");

scanf("%d",&val);

if(te==size)

{

printf("\n Queue is full !!");

}

else if(te==0)

{

rear=front=0;

queue[rear]=val;

te=te+1;

}

else

{

rear=(rear+1)%size;

queue[rear]=val;

te=te+1;

}

}

void insert_front()

{

int val;

printf("\n Enter value to insert at front :");

scanf("%d",&val);

if(te==size)

{

printf("\n Queue is full !!");

}

else if(te==0)

{

rear=front=0;

queue[rear]=val;

te=te+1;

}

else

{

if(front==0)

{

front=size-1;

}

else

{

front=front-1;

}

queue[front]=val;

te=te+1;

}

}


void del_rear()

{

if(te==0)

{

printf("\n Queue is empty !!");

}

else

{

if(rear==-1)

{

rear=size-1;

}

printf("\n Number Deleted fron Rear end is %d \n",queue[rear]);

rear=rear-1;

te=te-1;

}

}


void del_front()

{

if(te==0)

{

printf("\n Queue is empty !!");

}

else

{

printf("\n Number Deleted from front end is %d \n",queue[front]);

front=(front+1)%size;

te=te-1;

}

}


void display()

{

if(te==0)

{

printf("\n Queue is empty !!");

}

else

{

x=front;

printf("\n Queue is :");

for(i=1 ; i<=te ; i++)

{

printf("\t %d",queue[x]);

x=(x+1)%size;

}

printf("\n");

}

}

Comments

Popular posts from this blog

python(BI)

Prac_8(AMP)

LSA10