/*Serial No.154 [swami136.cpp]*/
#include<stdio.h>
#include<conio.h>
#define max 4
int tos1=-1,tos2=-1;
int stack1[max],stack2[max];
void push(int *S,int ele, int *top)
{
if(*top<max-1)
{
(*top)++;
*(S+*top)=ele;
}
else
printf("\nStack is full.\n");
}
int pop(int *S, int *top)
{
int value=*(S+*top);
(*top)--;
return(value);
}
void display(int *S, int top)
{
printf("\nElements in the Queue are:\n");
if(top==-1)
printf("\nStack is empty.\n");
else
{
for(int i=0;i<=top;i++)
{
printf("%d ",*(S+i));
}
}
}
void main()
{
int choice,ele,temp;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequeue");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: if(tos1>=max-1)
printf("\nQueue is full.\n");
else
{
printf("Enter the element to insert= ");
scanf("%d",&ele);
push(stack1,ele,&tos1);
}
break;
case 2: if(tos1==-1)
printf("\nQueue is Empty.You can't dequeue.\n");
else
{
while(tos1!=0)
{
ele=pop(stack1,&tos1);
push(stack2,ele,&tos2);
}
ele=pop(stack1,&tos1);
printf("\nDeleted Element from Queue= %d",ele);
while(tos2!=-1)
{
ele=pop(stack2,&tos2);
push(stack1,ele,&tos1);
}
}
break;
case 3: display(stack1,tos1);
}
}while(choice!=7);
getch();
}
Showing posts with label Queue. Show all posts
Showing posts with label Queue. Show all posts
Tuesday, July 19, 2011
Program for Linear Queue using pointers {enqueue, dequeue, display}
/*Serial No.150 [swami132.cpp]*/
#include<stdio.h>
#include<conio.h>
#define maxsize 4
void enqueue(int *Q,int *f, int *r)
{
int ele;
if(*r>=maxsize-1)
{
printf("\nQueue is full. Value can't be added.");
return;
}
if(*f==-1)
{
(*f)++;
}
(*r)++;
printf("\nEntere the element to insert= ");
scanf("%d",&ele);
*(Q+*r)=ele;
}
void display(int *Q,int f,int r)
{
if(f==-1&&r==-1)
printf("\nQueue is empty.");
else
{
printf("\nElements in Queue are:\n");
for(int i=f;i<=r;i++)
{
printf("%d ",*(Q+i));
}
}
}
void dequeue(int *Q,int *f, int *r)
{
int ele;
if(*f==-1&&*r==-1)
{
printf("\nQueue is empty. Value can't be deleted.");
return;
}
else if(*f==*r)
{
ele=*(Q+*f);
*f=-1;
*r=-1;
}
else
{
ele=*(Q+*f);
(*f)++;
}
printf("\nDeleted Element= %d",ele);
}
void main()
{
int front1=-1,rear1=-1;
int queue1[maxsize];
int choice;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequque");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: enqueue(queue1,&front1,&rear1);
break;
case 2: dequeue(queue1,&front1,&rear1);
break;
case 3: display(queue1,front1,rear1);
}
}while(choice!=7);
getch();
}
#include<stdio.h>
#include<conio.h>
#define maxsize 4
void enqueue(int *Q,int *f, int *r)
{
int ele;
if(*r>=maxsize-1)
{
printf("\nQueue is full. Value can't be added.");
return;
}
if(*f==-1)
{
(*f)++;
}
(*r)++;
printf("\nEntere the element to insert= ");
scanf("%d",&ele);
*(Q+*r)=ele;
}
void display(int *Q,int f,int r)
{
if(f==-1&&r==-1)
printf("\nQueue is empty.");
else
{
printf("\nElements in Queue are:\n");
for(int i=f;i<=r;i++)
{
printf("%d ",*(Q+i));
}
}
}
void dequeue(int *Q,int *f, int *r)
{
int ele;
if(*f==-1&&*r==-1)
{
printf("\nQueue is empty. Value can't be deleted.");
return;
}
else if(*f==*r)
{
ele=*(Q+*f);
*f=-1;
*r=-1;
}
else
{
ele=*(Q+*f);
(*f)++;
}
printf("\nDeleted Element= %d",ele);
}
void main()
{
int front1=-1,rear1=-1;
int queue1[maxsize];
int choice;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequque");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: enqueue(queue1,&front1,&rear1);
break;
case 2: dequeue(queue1,&front1,&rear1);
break;
case 3: display(queue1,front1,rear1);
}
}while(choice!=7);
getch();
}
Program for Circular Queue using Linked list. {enqueue, dequeue, display}
/*Serial No.145 [swami127.cpp]*/
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
typedef struct node
{
int info;
struct node *next;
}node;
void enqueue(node **f)
{
node *q=*f,*temp=(node*)malloc(sizeof(node));
printf("\nEnter the element to be inserted= ");
scanf("%d",&temp->info);
if(*f==NULL) /*if inserted node is first node*/
*f=temp;
else /*if inserted node is not first node*/
{
while(q->next!=*f)
{
q=q->next;
}
q->next=temp;
}
temp->next=*f;
}
void display(node *f)
{
node *q=f;
if(f==NULL)
printf("\nCircular Queue is Empty.");
else
{
do
{
printf("%d ",q->info);
q=q->next;
}while(q!=f);
}
}
void dequeue(node **f)
{
node *q=*f,*temp;
if(*f==NULL)
{
printf("\nQueue is Empty. Value can't be deleted.");
return;
}
if(q->next==q) /*if it is single node*/
{
temp=q;
*f=NULL;
free(temp);
return;
}
else /*if more than one node are present.*/
{
temp=q;
while(q->next!=*f)
{
q=q->next;
}
*f=temp->next;
q->next=*f;
free(temp);
}
}
void main()
{
int choice;
node *front=NULL;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequeue");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: enqueue(&front);
break;
case 2: dequeue(&front);
break;
case 3: display(front);
}
}while(choice!=7);
getch();
}
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
typedef struct node
{
int info;
struct node *next;
}node;
void enqueue(node **f)
{
node *q=*f,*temp=(node*)malloc(sizeof(node));
printf("\nEnter the element to be inserted= ");
scanf("%d",&temp->info);
if(*f==NULL) /*if inserted node is first node*/
*f=temp;
else /*if inserted node is not first node*/
{
while(q->next!=*f)
{
q=q->next;
}
q->next=temp;
}
temp->next=*f;
}
void display(node *f)
{
node *q=f;
if(f==NULL)
printf("\nCircular Queue is Empty.");
else
{
do
{
printf("%d ",q->info);
q=q->next;
}while(q!=f);
}
}
void dequeue(node **f)
{
node *q=*f,*temp;
if(*f==NULL)
{
printf("\nQueue is Empty. Value can't be deleted.");
return;
}
if(q->next==q) /*if it is single node*/
{
temp=q;
*f=NULL;
free(temp);
return;
}
else /*if more than one node are present.*/
{
temp=q;
while(q->next!=*f)
{
q=q->next;
}
*f=temp->next;
q->next=*f;
free(temp);
}
}
void main()
{
int choice;
node *front=NULL;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequeue");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: enqueue(&front);
break;
case 2: dequeue(&front);
break;
case 3: display(front);
}
}while(choice!=7);
getch();
}
Program for Circular Queue using Array. {enqueue, dequeue, display}
/*Serial No.144 [swami126.cpp]*/
#include<stdio.h>
#include<conio.h>
#define maxsize 4
int front=-1,rear=-1,cqueue[maxsize];
void enqueue()
{
if((front==0&&rear==(maxsize-1))|(front==rear+1))
{
printf("\nQueue is full. Value can't be inserted.");
return;
}
else
{
int ele;
printf("\nEnter element to insert= ");
scanf("%d",&ele);
if(rear==maxsize-1) /*if it is first node*/
rear=0;
else /*if it is other than first node*/
rear++;
cqueue[rear]=ele;
if(front==-1)
front++;
}
}
void display()
{
int i;
printf("\nElements in the list are:\n ");
if(front==-1)
printf("\nQueue is Empty.");
else if(front==rear) /*if only single node is present.*/
{
printf("%d ",cqueue[rear]);
return;
}
else /*if more than one node present*/
{
if(front<rear)
{
for(int i=front;i<=rear;i++)
printf("%d ",cqueue[i]);
}
else
{
for(i=front;i<maxsize;i++)
printf("%d ",cqueue[i]);
for(i=0;i<=rear;i++)
printf("%d ",cqueue[i]);
}
}
}
void dequeue()
{
if(front==-1)
{
printf("\nQueue is Empty. Element can't be deleted.");
return;
}
if(front==rear) /*if single node is present*/
{
front=rear=-1;
return;
}
if(front==maxsize-1)
front=0;
else /*if more than one node present*/
front++;
}
void main()
{
int choice;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequeue");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: enqueue();
break;
case 2: dequeue();
break;
case 3: display();
}
}while(choice!=7);
getch();
}
#include<stdio.h>
#include<conio.h>
#define maxsize 4
int front=-1,rear=-1,cqueue[maxsize];
void enqueue()
{
if((front==0&&rear==(maxsize-1))|(front==rear+1))
{
printf("\nQueue is full. Value can't be inserted.");
return;
}
else
{
int ele;
printf("\nEnter element to insert= ");
scanf("%d",&ele);
if(rear==maxsize-1) /*if it is first node*/
rear=0;
else /*if it is other than first node*/
rear++;
cqueue[rear]=ele;
if(front==-1)
front++;
}
}
void display()
{
int i;
printf("\nElements in the list are:\n ");
if(front==-1)
printf("\nQueue is Empty.");
else if(front==rear) /*if only single node is present.*/
{
printf("%d ",cqueue[rear]);
return;
}
else /*if more than one node present*/
{
if(front<rear)
{
for(int i=front;i<=rear;i++)
printf("%d ",cqueue[i]);
}
else
{
for(i=front;i<maxsize;i++)
printf("%d ",cqueue[i]);
for(i=0;i<=rear;i++)
printf("%d ",cqueue[i]);
}
}
}
void dequeue()
{
if(front==-1)
{
printf("\nQueue is Empty. Element can't be deleted.");
return;
}
if(front==rear) /*if single node is present*/
{
front=rear=-1;
return;
}
if(front==maxsize-1)
front=0;
else /*if more than one node present*/
front++;
}
void main()
{
int choice;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequeue");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: enqueue();
break;
case 2: dequeue();
break;
case 3: display();
}
}while(choice!=7);
getch();
}
Program for Queue using Linked list. {enqueue, dequeue, display}
/*Serial No.143 [swami125.cpp]*/
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
typedef struct node
{
int info;
struct node *next;
}node;
void enqueue(node **head)
{
node *q=*head,*temp;
temp=(node*)malloc(sizeof(node));
printf("\nEnter the element to insert= ");
scanf("%d",&temp->info);
temp->next=NULL;
if(q==NULL)
{
*head=temp;
}
else
{
while(q->next!=NULL)
{
q=q->next;
}
q->next=temp;
}
}
void display(node *head)
{
if(head==NULL)
printf("\nQueue is Empty.");
else
{
do
{
printf("%d ",head->info);
head=head->next;
}while(head!=NULL);
}
}
void dequeue(node **head)
{
node *q=*head;
if(q==NULL)
printf("\nQueue is Empty. Element can't be deleted.");
else
{
printf("\nElement deleted= %d\n",q->info);
*head=q->next;
free(q);
}
}
void main()
{
int choice;
node *start=NULL;
clrscr();
printf("\n\t[1] Enqueue");
printf("\n\t[2] Dequeue");
printf("\n\t[3] Display");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: enqueue(&start);
break;
case 2: dequeue(&start);
break;
case 3: display(start);
}
}while(choice!=7);
getch();
}
Program for Queue using Array. {Add, Delete, Display, Reverse}
/*Serial No.142 [swami124.cpp]*/
#include<stdio.h>
#include<conio.h>
#define maxsize 4
int front=-1,rear=-1;
int queue[maxsize];
void reverse()
{
if(front==-1&&rear==-1)
printf("\nQueue is empty.");
else
{
printf("\Queue elements are reversed.");
int j=rear,temp;
for(int i=front;i<j;i++,j--)
{
temp=queue[i];
queue[i]=queue[j];
queue[j]=temp;
}
}
}
void add()
{
if(rear>=maxsize-1)
{
printf("\nQueue is full. Value can't be added.");
return;
}
int ele;
printf("\nEntere the element to insert= ");
scanf("%d",&ele);
if(front==-1)
{
front++;
}
rear++;
queue[rear]=ele;
}
void display()
{
if(front==-1&&rear==-1)
printf("\nQueue is empty.");
else
{
printf("\nElements in Queue are:\n");
for(int i=front;i<=rear;i++)
{
printf("%d ",queue[i]);
}
}
}
void delete_que()
{
int ele;
if(front==-1&&rear==-1)
{
printf("\nQueue is empty. Value can't be deleted.");
return;
}
else if(front==rear)
{
ele=queue[front];
front=-1;
rear=-1;
}
else
{
ele=queue[front];
front++;
}
printf("\nDeleted Element= %d",ele);
}
void main()
{
int choice;
clrscr();
printf("\n\t[1] Add");
printf("\n\t[2] Delete");
printf("\n\t[3] Display");
printf("\n\t[4] Reverse Queue");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: add();
break;
case 2: delete_que();
break;
case 3: display();
break;
case 4: reverse();
}
}while(choice!=7);
getch();
}
#include<stdio.h>
#include<conio.h>
#define maxsize 4
int front=-1,rear=-1;
int queue[maxsize];
void reverse()
{
if(front==-1&&rear==-1)
printf("\nQueue is empty.");
else
{
printf("\Queue elements are reversed.");
int j=rear,temp;
for(int i=front;i<j;i++,j--)
{
temp=queue[i];
queue[i]=queue[j];
queue[j]=temp;
}
}
}
void add()
{
if(rear>=maxsize-1)
{
printf("\nQueue is full. Value can't be added.");
return;
}
int ele;
printf("\nEntere the element to insert= ");
scanf("%d",&ele);
if(front==-1)
{
front++;
}
rear++;
queue[rear]=ele;
}
void display()
{
if(front==-1&&rear==-1)
printf("\nQueue is empty.");
else
{
printf("\nElements in Queue are:\n");
for(int i=front;i<=rear;i++)
{
printf("%d ",queue[i]);
}
}
}
void delete_que()
{
int ele;
if(front==-1&&rear==-1)
{
printf("\nQueue is empty. Value can't be deleted.");
return;
}
else if(front==rear)
{
ele=queue[front];
front=-1;
rear=-1;
}
else
{
ele=queue[front];
front++;
}
printf("\nDeleted Element= %d",ele);
}
void main()
{
int choice;
clrscr();
printf("\n\t[1] Add");
printf("\n\t[2] Delete");
printf("\n\t[3] Display");
printf("\n\t[4] Reverse Queue");
printf("\n\t[7] Exit");
do
{
printf("\nEnter your choice= ");
scanf("%d",&choice);
switch(choice)
{
case 1: add();
break;
case 2: delete_que();
break;
case 3: display();
break;
case 4: reverse();
}
}while(choice!=7);
getch();
}
Subscribe to:
Posts (Atom)