Skip to content

Commit aead0ba

Browse files
authored
Merge pull request #98 from khanna98/master
Circular Queue using Linked List
2 parents 24794d8 + 2d39a0e commit aead0ba

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

circluar_Queue_using_Linked_List.cpp

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#include<iostream>
2+
using namespace std;
3+
4+
struct node{
5+
int data;
6+
struct node *next;
7+
};
8+
class Queue{
9+
node *front;
10+
node *rear;
11+
public:
12+
Queue(){
13+
front = NULL;
14+
rear = NULL;
15+
}
16+
void createNode(int val){
17+
node *ptr;
18+
node *nn;
19+
nn = new node;
20+
ptr = front;
21+
nn->data = val;
22+
nn->next = NULL;
23+
front=nn;
24+
rear=nn;
25+
}
26+
void enqueue(int val){
27+
if(front==NULL || rear==NULL){
28+
createNode(val);
29+
}
30+
else{
31+
node *ptr;
32+
node *nn;
33+
ptr=front;
34+
nn = new node;
35+
nn->data = val;
36+
rear->next = nn;
37+
nn->next = front;
38+
rear = nn;
39+
}
40+
}
41+
void dequeue(){
42+
node *n;
43+
n = front;
44+
front = front->next;
45+
delete(n);
46+
}
47+
void traverse(){
48+
node *ptr;
49+
ptr=front;
50+
do{
51+
cout<<ptr->data<<" ";
52+
ptr=ptr->next;
53+
}while(ptr!=rear->next);
54+
cout<<front->data;
55+
cout<<endl;
56+
}
57+
};
58+
int main(void){
59+
Queue q;
60+
q.enqueue(10);
61+
q.enqueue(20);
62+
q.enqueue(30);
63+
q.enqueue(40);
64+
q.enqueue(50);
65+
q.enqueue(60);
66+
q.enqueue(70);
67+
q.traverse();
68+
q.dequeue();
69+
q.traverse();
70+
return 0;
71+
}

0 commit comments

Comments
 (0)