-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueuel.cpp
More file actions
125 lines (120 loc) · 2.96 KB
/
Copy pathQueuel.cpp
File metadata and controls
125 lines (120 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*-------------------------------------------------------------------------------------------------------------------------------------------
QueueL.cpp
An object-oriented program in cpp to implement a queue using linked list
181713
13-02-19
-------------------------------------------------------------------------------------------------------------------------------------------*/
#include<iostream>
using namespace std;
typedef struct QueType{
int Num;
struct QueType *Next;
}QUEUENODE;
class Queue
{
private:
QUEUENODE *Head;
public:
Queue();
QUEUENODE *MakeQueNode(int Num);
void InsertQueNode(int Num);
int DelQueNode();
void Display();
};
main()
{
Queue Q;
int n,ele,ch;
cout<<"Program to perform Queue operation using linked list"<<endl;
while(1){
cout<<"\nMenu\n";
cout<<"1.Insert to the queue\n";
cout<<"2.Delete element from queue\n";
cout<<"3.Display \n";
cout<<"4.Exit\n";
cout<<"Enter your choice: ";
cin>>ch;
switch(ch){
case 1: cout<<"Enter the element: ";
cin>>ele;
Q.InsertQueNode(ele);
break;
case 2: ele=Q.DelQueNode();
if(ele!=-1)
cout<<"\nThe deleted element is: "<<ele;
break;
case 3: Q.Display();
break;
case 4:exit(0);
default:cout<<"\nSorry! You have entered a wrong choice!!";
}
}
}
//-------------------------------------------------------Queue()---------------------------------------------------------------------------
Queue::Queue()
{
Head=NULL;
}
//-------------------------------------------------------MakeQueNode()---------------------------------------------------------------------------
QUEUENODE *Queue::MakeQueNode(int Num)
{
QUEUENODE *Node;
Node=(QUEUENODE *)malloc(sizeof(QUEUENODE));
Node->Num=Num;
Node->Next=NULL;
return Node;
}
//-------------------------------------------------------InsertQueNode()---------------------------------------------------------------------------
void Queue::InsertQueNode(int Ele)
{
QUEUENODE *Curr,*p;
p=MakeQueNode(Ele);
Curr=Head;
if(Head==NULL){
Head=p;
return;
}
while(Curr->Next!=NULL){
Curr=Curr->Next;
}
Curr->Next=p;
//cout<<"\nThe element is inserted\n\n";
return;
}
//-------------------------------------------------------Display()---------------------------------------------------------------------------
void Queue::Display()
{
QUEUENODE *Curr;
Curr=Head;
if(Head==NULL){
cout<<"Sorry! The queue is empty";
return;
}
cout<<"\nThe elements in the queue are:\n";
while(Curr->Next!=NULL){
cout<<Curr->Num<<"\t";
Curr=Curr->Next;
}
cout<<Curr->Num<<"\t";
return;
}
//-------------------------------------------------------DelQueNode()---------------------------------------------------------------------------
int Queue::DelQueNode(){
QUEUENODE *Curr;
Curr=Head;
int ele;
if(Head==NULL){
cout<<"Sorry! The queue is empty";
return -1;
}
if(Curr->Next==NULL){
Head=NULL;
ele=Curr->Num;
free(Curr);
return ele;
}
ele=Curr->Num;
Head=Curr->Next;
free(Curr);
return(ele);
}