Update Queue Using Linked List.cpp

This commit is contained in:
Yang Libin 2019-08-21 09:17:20 +08:00 committed by GitHub
parent 0ab4f5f89d
commit abc0d365de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,92 +1,89 @@
#include<iostream> #include <iostream>
using namespace std; using namespace std;
struct node struct node
{ {
int val; int val;
node *next; node *next;
}; };
node *front, *rear; node *front, *rear;
void Enque(int x) void Enque(int x)
{ {
if (rear==NULL) if (rear == NULL)
{ {
node *n= new node; node *n = new node;
n->val=x; n->val = x;
n->next=NULL; n->next = NULL;
rear=n; rear = n;
front=n; front = n;
} }
else else
{ {
node *n = new node; node *n = new node;
n->val=x; n->val = x;
n->next=NULL; n->next = NULL;
rear->next=n; rear->next = n;
rear=n; rear = n;
} }
} }
void Deque() void Deque()
{ {
if (rear == NULL && front == NULL) if (rear == NULL && front == NULL)
{ {
cout<<"\nUnderflow"; cout << "\nUnderflow";
} }
else else
{ {
node *t = front; node *t = front;
cout<<"\n"<<t->val<<" deleted"; cout << "\n"
front=front->next; << t->val << " deleted";
delete t; front = front->next;
if(front == NULL) delete t;
rear = NULL; if (front == NULL)
} rear = NULL;
}
} }
void show() void show()
{ {
node *t=front; node *t = front;
while(t!=NULL) while (t != NULL)
{ {
cout<<t->val<<"\t"; cout << t->val << "\t";
t=t->next; t = t->next;
} }
} }
int main() int main()
{ {
int ch, x; int ch, x;
do do
{ {
cout<<"\n1. Enque"; cout << "\n1. Enque";
cout<<"\n2. Deque"; cout << "\n2. Deque";
cout<<"\n3. Print"; cout << "\n3. Print";
cout<<"\nEnter Your Choice : "; cout << "\nEnter Your Choice : ";
cin>>ch; cin >> ch;
if (ch==1) if (ch == 1)
{ {
cout<<"\nInsert : "; cout << "\nInsert : ";
cin>>x; cin >> x;
Enque(x); Enque(x);
} }
else if (ch==2) else if (ch == 2)
{ {
Deque(); Deque();
} }
else if (ch==3) else if (ch == 3)
{ {
show(); show();
} }
} } while (ch != 0);
while(ch!=0);
return 0; return 0;
} }