Queue.ll
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
struct node *next;
};
struct node *front = 0;
struct node *rear = 0;
void enque(int x){
struct node *newnode = (struct node *)malloc(sizeof(struct node));
newnode -> data = x;
newnode -> next = NULL;
if(front == 0 && rear == 0){
front = rear = newnode;
}
else{
rear -> next = newnode;
rear = newnode;
}
}
void display (){
struct node *temp;
if(front == 0 && rear == 0){
printf("queue is empty");
}
else{
temp = front;
while (temp != 0){
printf("%d\n",temp -> data);
temp = temp -> next;
}
}
}
void deque(){
struct node *temp;
temp = front;
if(front == 0 && rear == 0){
printf("queue is empty");
}
else{
printf("%d\n",front -> data);
front = front -> next;
free(temp);
if(front == 0){
rear = 0;
}
}
}
void peek(){
if(front == 0 && rear == 0){
printf("queue is empty");
}
else{
printf("%d\n",front -> data);
}
}
int main(){
enque(5);
enque(0);
enque(-3);
display ();
deque();
peek();
return 0;
}