====== 큐 ====== 가장 먼저 들어간 자료를 가장 먼저 뺄 수 있는 (FIFO - First In First Out) 자료 구조이다. ===== 예제 ===== #include #include struct Node { int value; Node *prev; Node *next; }; Node *head; void InitQueue() { head=(Node *)malloc(sizeof(Node)); head->prev=NULL; head->next=NULL; } void Insert(int data) { Node *New; Node *tail; for (tail=head;tail->next;tail=tail->next) {;} New=(Node *)malloc(sizeof(Node)); New->value=data; New->next=NULL; New->prev=tail; tail->next=New; } int Delete() { int data; Node *Target; Target=head->next; if (Target==NULL) { return -1; } data=Target->value; head->next=Target->next; if (head->next) { head->next->prev=head; } free(Target); return data; } void FreeQueue() { while (Delete()!=-1) {;} free(head); head=NULL; } void main() { int i; InitQueue(); for (i=0;i<100;i++) { Insert(i); } for (i=0;i<100;i++) { printf("%d ",Delete()); } FreeQueue(); } ===== 참고 ===== * [[http://en.wikipedia.org/wiki/Queue_(abstract_data_type)|위키피디아]] \\ * [[http://soen.kr/lecture/ccpp/cpp2/19-4-2.htm|김상형 씨 홈페이지]] \\