diff --git a/circluar_Queue_using_Linked_List.cpp b/circluar_Queue_using_Linked_List.cpp new file mode 100644 index 000000000..bf700ae8b --- /dev/null +++ b/circluar_Queue_using_Linked_List.cpp @@ -0,0 +1,71 @@ +#include +using namespace std; + +struct node{ + int data; + struct node *next; +}; +class Queue{ + node *front; + node *rear; +public: + Queue(){ + front = NULL; + rear = NULL; + } + void createNode(int val){ + node *ptr; + node *nn; + nn = new node; + ptr = front; + nn->data = val; + nn->next = NULL; + front=nn; + rear=nn; + } + void enqueue(int val){ + if(front==NULL || rear==NULL){ + createNode(val); + } + else{ + node *ptr; + node *nn; + ptr=front; + nn = new node; + nn->data = val; + rear->next = nn; + nn->next = front; + rear = nn; + } + } + void dequeue(){ + node *n; + n = front; + front = front->next; + delete(n); + } + void traverse(){ + node *ptr; + ptr=front; + do{ + cout<data<<" "; + ptr=ptr->next; + }while(ptr!=rear->next); + cout<data; + cout<