#include<iostream>
using namespace std;
struct node
{
int data;
node*next;
node()
{
data=-1;
next=NULL;
}
node(int n,node*temp)
{
data=n;
next=temp;
}
};
class queue
{
private:
node*head;
node*tail;
public:
queue()
{
head=NULL;
tail=NULL;
}
bool enque(int data);
bool deque(int&data);
bool Isempty();
};
bool queue:: enque(int data)
{
node*temp=new node();
if(temp==NULL) // if system memory is full return false
{
return false;
}
else // if system memory is not full then enque
{
if(head==NULL)
{
temp->data=data;
temp->next=NULL;
head=temp;
}
else if(head->next==NULL)
{
if(head->data<data)
{
temp->data=data;
temp->next=head;
head=temp;
}
else if(head->data>data)
{
temp->data=data;
temp->next=NULL;
temp->next=head->next;
head->next=temp;
}
}
else
{
node*current=head;
if(head->data<data)
{
temp->data=data;
temp->next=NULL;
temp->next=head;
head=temp;
}
else
{
while(current->next!=NULL)
{
if(current->next->data<data)
{
break;
}
current=current->next;
}
temp->data=data;
temp->next=current->next;
current->next=temp;
}
}
return true;
}
}
bool queue:: deque(int&data)
{
node*current=head;
if(current==NULL)
{
return false;
}
else
{
data=current->data;
head=current->next;
delete current;
return true;
}
}
bool queue:: Isempty()
{
if(head==NULL)
{
return false;
}
else
{
return true;
}
}
void main()
{
queue q;
int option;
int data;
bool temp;
while(1)
{
cout<<"Enter 1 to Enter data in queue"<<endl;
cout<<"Enter 2 to Deque data in queue"<<endl;
cout<<"Enter 3 to deque all elements"<<endl;
cout<<"Enter 4 to clear screen"<<endl;
cin>>option;
switch(option)
{
case 1:
cout<<"Enter data : ";
cin>>data;
if(q.enque(data))
{
cout<<"Succesfully enqueued"<<endl;
}
else
{
cout<<"system memory is full"<<endl;
}
break;
case 2:
if(q.Isempty())
{
temp=q.deque(data);
cout<<"DEQUEUED DATA IS : "<<data<<endl;
}
else
{
cout<<"queue is Empty"<<endl;
}
break;
case 3:
if(q.Isempty())
{
while(q.Isempty())
{
temp=q.deque(data);
cout<<"DEQUEUED DATA IS : "<<data<<endl;
}
}
else
{
cout<<"queue is Empty"<<endl;
}
break;
case 4:
system("cls");
break;
case 5:
cout<<"Invalid input "<<endl;
break;
}
}
}
using namespace std;
struct node
{
int data;
node*next;
node()
{
data=-1;
next=NULL;
}
node(int n,node*temp)
{
data=n;
next=temp;
}
};
class queue
{
private:
node*head;
node*tail;
public:
queue()
{
head=NULL;
tail=NULL;
}
bool enque(int data);
bool deque(int&data);
bool Isempty();
};
bool queue:: enque(int data)
{
node*temp=new node();
if(temp==NULL) // if system memory is full return false
{
return false;
}
else // if system memory is not full then enque
{
if(head==NULL)
{
temp->data=data;
temp->next=NULL;
head=temp;
}
else if(head->next==NULL)
{
if(head->data<data)
{
temp->data=data;
temp->next=head;
head=temp;
}
else if(head->data>data)
{
temp->data=data;
temp->next=NULL;
temp->next=head->next;
head->next=temp;
}
}
else
{
node*current=head;
if(head->data<data)
{
temp->data=data;
temp->next=NULL;
temp->next=head;
head=temp;
}
else
{
while(current->next!=NULL)
{
if(current->next->data<data)
{
break;
}
current=current->next;
}
temp->data=data;
temp->next=current->next;
current->next=temp;
}
}
return true;
}
}
bool queue:: deque(int&data)
{
node*current=head;
if(current==NULL)
{
return false;
}
else
{
data=current->data;
head=current->next;
delete current;
return true;
}
}
bool queue:: Isempty()
{
if(head==NULL)
{
return false;
}
else
{
return true;
}
}
void main()
{
queue q;
int option;
int data;
bool temp;
while(1)
{
cout<<"Enter 1 to Enter data in queue"<<endl;
cout<<"Enter 2 to Deque data in queue"<<endl;
cout<<"Enter 3 to deque all elements"<<endl;
cout<<"Enter 4 to clear screen"<<endl;
cin>>option;
switch(option)
{
case 1:
cout<<"Enter data : ";
cin>>data;
if(q.enque(data))
{
cout<<"Succesfully enqueued"<<endl;
}
else
{
cout<<"system memory is full"<<endl;
}
break;
case 2:
if(q.Isempty())
{
temp=q.deque(data);
cout<<"DEQUEUED DATA IS : "<<data<<endl;
}
else
{
cout<<"queue is Empty"<<endl;
}
break;
case 3:
if(q.Isempty())
{
while(q.Isempty())
{
temp=q.deque(data);
cout<<"DEQUEUED DATA IS : "<<data<<endl;
}
}
else
{
cout<<"queue is Empty"<<endl;
}
break;
case 4:
system("cls");
break;
case 5:
cout<<"Invalid input "<<endl;
break;
}
}
}
Thanks for your appreciation. you can also follow me on facebook @ www.facebook.com/umerpervaiz12
ReplyDelete