Queue using linked list

1:  #include <stdio.h>  
2:  #include <stdlib.h>  
3:  #include <malloc.h>  
4:  #include <dos.h>  
5:  struct queue  
6:  {  
7:       int data;  
8:       struct queue*next;  
9:  };  
10:  typedef struct queue QUEUE;  
11:  QUEUE*rear=NULL;  
12:  QUEUE*front=NULL;  
13:  void qinsert()  
14:  {  
15:    if(rear==NULL)  
16:    {  
17:         rear=(QUEUE*)malloc(sizeof(QUEUE));  
18:         printf("Enter data: ");  
19:         scanf("%d",&rear->data);  
20:         rear->next=NULL;  
21:         front=rear;  
22:         return;  
23:    }  
24:    rear->next=(QUEUE*)malloc(sizeof(QUEUE));  
25:    rear=rear->next;  
26:       printf("Enter data: ");  
27:    scanf("%d",&rear->data);  
28:    rear->next=NULL;  
29:    return;  
30:  }  
31:  void qdelete()  
32:  {  
33:    QUEUE*temp;  
34:    if(front==NULL)  
35:    {  
36:          printf("QUEUE IS UNDEF FLOW\n");  
37:          system("PAUSE");  
38:          return;  
39:    }  
40:    temp=front;  
41:    front=front->next;  
42:    temp->next=NULL;  
43:    printf("Deleted element is:%d",temp->data);  
44:    free(temp);  
45:    system("PAUSE");  
46:    if(front==NULL)  
47:    rear=NULL;  
48:    return;  
49:  }  
50:  void qdisplay()  
51:  {  
52:    QUEUE*temp;  
53:    if(front==NULL)  
54:    {  
55:          printf("QUEUE IS EMPTY\n");  
56:          system("PAUSE");  
57:          return;  
58:    }  
59:    temp=front;  
60:    printf("QUEUE ELEMENTS ARE: ");  
61:    do  
62:    {  
63:          printf("%d",temp->data);  
64:          temp=temp->next;  
65:    }while(temp!=NULL);  
66:    printf("\n");  
67:    system("PAUSE");  
68:        return;  
69:  }  
70:  int main(void)  
71:  {  
72:       int option;  
73:         while(1)  
74:       {  
75:            system("CLS");  
76:            printf("\nQInsert PRESS 1: ");  
77:            printf("\nQDelete PRESS 2: ");  
78:            printf("\nQDisplay PRESS 3: ");  
79:            printf("\nEXIT PRESS   4: ");  
80:            scanf("%d",&option);  
81:            switch(option)  
82:            {  
83:                 case 1: qinsert();  
84:                           break;  
85:                 case 2: qdelete();  
86:                           break;  
87:                 case 3: qdisplay();  
88:                           break;                 
89:                 case 4: free(front);  
90:                     return EXIT_SUCCESS;  
91:                 default: printf("INVALID OPTION\n");  
92:                            system("PAUSE");  
93:            }            
94:       }  
95:  }  

No comments:

Post a Comment