#include<stdio.h>
#define ERROR 0
#define Status int
#define SUCESS 1
typedef struct Node{
int data;
Node *next;
}*QueueNode;
typedef struct QNode{
QueueNode front;
QueueNode rear;
}*Queue;
void initQueue(Queue &queue){
queue->front = NULL;
queue->rear = NULL;
}
Status isEmpty(Queue queue){
if(queue->front == NULL || queue->rear == NULL){
return 1;
}
return 0;
}
Status addQueue(Queue queue,int data){
QueueNode node = new Node;
node->data = data;
if(isEmpty(queue)){
node->next = NULL;
queue->front = node;
queue->rear = node;
}else{
node->next = NULL;
queue->rear->next = node;
queue->rear = node;
}
return SUCESS;
}
Status getElement(Queue queue,int &data){
if(isEmpty(queue)){
return ERROR;
}
data = queue->front->data;
queue->front = queue->front->next;
return SUCESS;
}
int main(){
Queue queue = new QNode;
initQueue(queue);
addQueue(queue,1);
addQueue(queue,2);
addQueue(queue,3);
int data;
getElement(queue,data);
printf("%d\n",data);
getElement(queue,data);
printf("%d",data);
}