Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #define MAX 10
- struct queue {
- int r,f,data[MAX];
- }q;
- int empty() {
- if(q.r==-1) return (1);
- return (0);
- }
- int full() {
- if((q.r+1)%MAX==q.f) return (1);
- return (0);
- }
- void enqueueR(int x) {
- if(q.r==-1) {
- q.r=q.f=0;
- q.data[q.r]=x;
- }
- else {
- q.r=(q.r+1)%MAX;
- q.data[q.r]=x;
- }
- }
- void enqueueF(int x) {
- if(q.r==-1) {
- q.r=q.f=0;
- q.data[q.f]=x;
- }
- else {
- q.f=(q.f-1+MAX)%MAX;
- q.data[q.f]=x;
- }
- }
- int dequeueF() {
- int x;
- x=q.data[q.f];
- if(q.r==q.f) {
- q.r=-1;
- q.f=-1;
- }
- else
- q.f=(q.f+1)%MAX;
- return x;
- }
- int dequeueR() {
- int x;
- x=q.data[q.r];
- if(q.r==q.f) {
- q.r=-1;
- q.f=-1;
- }
- else
- q.r=(q.r-1+MAX)%MAX;
- return x;
- }
- void print() {
- int i;
- if(!empty()) {
- printf("\n");
- for(i=q.f;i!=q.r;i=(i+1)%MAX)
- printf("%d\t",q.data[i]);
- printf("%d\t",q.data[i]);
- }
- }
- void main() {
- q.r=-1;
- q.f=-1;
- int n,x;
- do {
- printf("\n1: INSERT FRONT\n2: INSERT REAR\n3: DELETE FRONT\n4: DELETE REAR\n5: PRINT ELEMENTS\n6: QUIT");
- printf("\nENTER YOUR CHOICE");
- scanf("%d",&n);
- switch(n) {
- case 1: printf("\n ENTER A VALUE");
- scanf("%d",&x);
- if(!full())
- enqueueF(x);
- else
- printf("\nQUEUE IS FULL");
- break;
- case 2: printf("\n ENTER A VALUE :");
- scanf("%d",&x);
- if(!full())
- enqueueR(x);
- else
- printf("\n QUEUE IS FULL");
- break;
- case 3: if(!empty()) {
- x=dequeueF();
- printf("\nDELETED DATA =%d",x);
- }
- else printf("\n QUEUE IS EMPTY !!");
- break;
- case 4: if(!empty()) {
- x=dequeueR();
- printf("\nDELETED DATA =%d",x);
- }
- else printf("\n QUEUE IS EMPTY !!");
- break;
- case 5: print(); break;
- case 6: exit(0);
- }
- }while(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement