데이터 구조 - 대기 열 - 링크 구현
5071 단어 데이터 구조
//
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//
typedef struct _Node Node;
struct _Node{
int num;
Node * next;
};
//
typedef struct _Queue Queue;
struct _Queue{
Node * Front;
Node * Rear;
};
//
Queue * creatQueue(){
Node * node=(Node *)malloc(sizeof(Node));
node->next=NULL;
Queue * queue=(Queue *)malloc(sizeof(Queue));
queue->Front=node;
queue->Rear=node;
return queue;
}
//
bool isEmpty(Queue * queue){
return (queue->Front==queue->Rear);
}
//
void addQueue(Queue * queue,int num){
//
Node * node=(Node *)malloc(sizeof(Node));
node->next=NULL;
node->num=num;
//
queue->Rear->next=node;
queue->Rear=node;
}
//
int Delete(Queue * queue){
if(isEmpty(queue)){
return NULL;
}
else{
Node * node=queue->Front->next;
int num=node->num;
queue->Front->next=node->next;
free(node);
return num;
}
}
int main(){
Queue * queue=creatQueue();
for(int i=0;i<10;i++){
addQueue(queue,i);
}
for(int i=0;i<10;i++){
printf("%d\t",Delete(queue));
}
}