#include <stdio.h> #include <stdlib.h> typedef struct _node { int data; struct _node *link; }_node; typedef struct _queue { _node *front; _node *rear; }_queue; void init(_queue *q) { q->front = q->rear = NULL; } int is_empty(_queue *q) { return (q->front == NULL); } void enqueue(_queue *q, int data) { _node *temp; temp = (_node *)malloc(sizeof(_node)); temp->data = data; temp->link = NULL; if (is_empty(q)) { q->front = temp; q->rear = temp; } else { q->rear->link = temp; q->rear = temp; } } int dequeue(_queue *q) { int item; _node *temp; temp = q->front; if (is_empty(q)) { printf("empty!\n"); return NULL; } else { item = temp->data; q->front = q->front->link; if (q->front == NULL) q->rear = NULL; free(temp); return item; } } void main() { int i; _queue q; init(&q); for (i = 1; i <= 5; i++) { enqueue(&q, i); } for (i = 1; i <= 6; i++) { printf("dequeue : %d \n", dequeue(&q)); } } | cs |
'NOTE > Algorithm' 카테고리의 다른 글
자료구조) Graph (0) | 2015.08.25 |
---|---|
자료구조) QuickSort (0) | 2015.08.25 |
자료구조) linked_stack (0) | 2015.08.25 |
dovelet) maze 최단 거리 미로 (0) | 2015.08.25 |
uva_10074) Take the Land (0) | 2015.08.21 |