Skip to content

IR-sys/Implementation-of-Queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

#include using namespace std; const int MAX=5; class Job { int id; int priority; friend class Queue; public: void getdata() { cout<<"\nENter Job id: "; cin>>id; cout<<"\nENter Job priority: "; cin>>priority; } void putdata() { cout<<"\n\t"<<id; cout<<"\t\t"<<priority; } };

class Queue { int front,rear; Job queue[MAX]; public: Queue() { front=rear=-1; } bool isEmpty(); bool isFull(); void insert(); void remove(); void display();

}; bool Queue::isEmpty() { if(front==(rear+1)||rear==-1) return 1; else return 0; }

bool Queue::isFull() { if(rear==MAX-1) { return 1; } else return 0; } void Queue::insert() { Job j;

if(isFull())
{
	cout<<"\nQueue is Full.";
}
else
{
	j.getdata();
	if(rear==-1)//empty
	{
		front++;
		rear++;

		queue[rear]=j;
	}
	else
	{

		int i=rear;
		while(i>=front && queue[i].priority>j.priority)
		{
			queue[i+1]=queue[i];
			i--;
		}
		queue[i+1]=j;
		rear++;
	}
	cout<<"\nJob Added To Queue.";
}

}

void Queue::remove() { if(rear==-1||front==(rear+1)) { cout<<"\nQueue is Empty."; } else { front++; cout<<"\nJob Processed From Queue."; } } void Queue::display() { if(isEmpty()) { cout<<"\nQueue is Empty."; } else { for(int i=front;i<=rear;i++) { queue[i].putdata(); } } }

int main() {

int ch;
Queue q;

do
{

	cout<<"\n\n****MENU****\n";
	cout<<"1.Insert job\n";
	cout<<"2.Display jobs\n";
	cout<<"3.Remove job\n";
	cout<<"4.Exit\n";

	cout<<"Choice: ";
	cin>>ch;

	switch(ch)
	{

	case 1: q.insert();
	break;

	case 2: cout<<"\n\tJob id ";
	cout<<"\t  Job priority ";
	q.display();
	break;

	case 3: q.remove();
	}
}while(ch!=4);
return 0;

}

About

About queue and its operations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published