From Queue chapter in PU/ Data Structure and Algorithm
Asked on 5 Apr, 2020
1
979 Views
Exam ma lekhna suhaudo circular queue ko code please :D
This will do.
#include <iostream>
#include <conio.h>
#define SIZE 5
using namespace std ;
class CircularQueue{
//Usually, rear and front are used. insertAt and deleteFrom are more readable. so,
int insertAt , deleteFrom , arr[SIZE] ;
public:
CircularQueue(){
deleteFrom = 0 ;
insertAt = 0 ;
cout << "\nQueue initialized." ;
show() ;
}
int isFull(){
return ((insertAt - deleteFrom) == SIZE) ;
}
int isEmpty(){
return (insertAt == deleteFrom) ;
}
void insert(int a){
if(!isFull()){
arr[ (insertAt++ % SIZE) ] = a ;
cout << "\nInserted " << a << " to queue." ;
}else{
cout << "\nQueue full. cant insert " << a ;
}
show() ;
}
void remove(){
if(!isEmpty()){
cout << "\nRemoved " << arr[(deleteFrom++ % SIZE)] << " from queue.";
}else{
cout << "\nCant remove, no items in queue." ;
}
show() ;
}
void show(){
cout << "\nCurrent Queue Status: " ;
cout << "\n\tdeleteFrom: " << deleteFrom << ", insertAt: " << insertAt ;
if(!isEmpty()){
for(int i = deleteFrom; i < insertAt; i++){
cout << "\n\t[" << i%SIZE << "] = " << arr[i % SIZE] ;
}
cout << "\n" ;
}else{
cout << "\n\tQueue Empty.\n" ;
}
}
};
main(){
CircularQueue queue ;
//for exams, you can just show these
queue.insert(1);
queue.insert(23);
queue.insert(3);
queue.remove();
queue.remove();
queue.remove();
queue.remove();
queue.remove();
queue.insert(4);
queue.insert(5);
queue.insert(6);
queue.remove();
queue.remove();
queue.remove();
queue.insert(6);
//For Testing nicely in console screen
char choice = 1 ;
do{
cout << "\n\nCicular Queue Demo. Press given numbers for respective functions: ";
cout << "\n1\tInsert item into queue."
<< "\n2\tRemove item from queue."
<< "\n3\tShow Queue Status."
<< "\n0\tExit."<< endl;
choice = getche() ;
switch(choice){
case '1':
cout << "\nEnter a number to add to queue: " ;
int a ;
cin >> a ;
queue.insert(a) ;
break ;
case '2':
queue.remove() ;
break ;
case '3':
queue.show() ;
break ;
default:
cout << "\nInvalid Choice. choose again." ;
}
}while(choice != '0');
}
Add your answer