# 연결리스트 큐LinkedQueue.cpp연결된 큐는 배열로 구현된 큐에 비하여 크기가 제한되지 않는다는 장점을 지니고 있다.
front 포인터는 삭제와 관련되며 rear 포인터는 삽입과 관련된다. front는 연결리스트의 맨 앞에 있는 요소를
가리키며 rear 포인터는 맨 뒤에 있는 요소를 가리킨다.
#include <stdio.h>
#include <stdlib.h>
typedefint element;
typedefstruct QueueNode
{
element item;
QueueNode *link;
}QueueNode;
typedefstruct
{
QueueNode *front, *rear;
}QueueType;
void Init(QueueType *q)
{
q->front=q->rear=NULL;
}
int is_empty(QueueType *q)
{
return (q->front==NULL);
}
int is_full(QueueType *q)
{
return0;
}
void Enqueue(QueueType *q, element item)
{
QueueNode *temp=(QueueNode*)malloc(sizeof(QueueNode));
temp->item=item;
temp->link=NULL;
if(is_empty(q))
{
q->front=temp;
q->rear=temp;
}
else
{
q->rear->link=temp;
q->rear=temp;
}
}
element Dequeue(QueueType *q)
{
QueueNode *temp = q->front;
element item;
if(is_empty(q))
{
printf("큐가 비어있습니다\n");
return -1;
}
item=temp->item;
q->front=q->front->link;
if(q->front==NULL)
q->rear=NULL;
free(temp);
return item;
}
int main()
{
QueueType q;
int i;
Init(&q);
for(i=0;i<5;i++)
{
Enqueue(&q,i);
printf("큐 삽입 :%d \n",i);
}
for(i=0;i<5;i++)
printf("큐 삭제 :%d\n",Dequeue(&q));
return0;
}