Try
[알고리즘/자료구조] 큐 (Queue) 본문
큐 ( Queue)
컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다. 영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다.
나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다.
프린터의 출력 처리나 윈도 시스템의 메시지 처리기, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용된다.
소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | /* /* /* khsh5592@naver.com /* has3ong.tistory.com /* /* 2018 - 11 - 11 /* */ #include <stdio.h> #include <iostream> #include <conio.h> using namespace std; class Queue_Node { private: int Data; public: Queue_Node* next_Node; Queue_Node* prev_Node; Queue_Node(int Data) { this->Data = Data; this->next_Node = NULL; this->prev_Node = NULL; } int Queue_Node_GetValue() { return this->Data; } }; class Queue { public: int count; Queue_Node* first; Queue_Node* last; Queue() { count = 0; this->first = NULL; this->last = NULL; } void Enqueue(int Data) { Queue_Node* new_Node = new Queue_Node(Data); if(first == NULL) { first = new_Node; last = new_Node; } else { last->next_Node = new_Node; new_Node->prev_Node = last; last = last->next_Node; } count++; } int Dequeue() { int item; item = first->Queue_Node_GetValue(); Queue_Node* temp; temp = first; first = first->next_Node; delete(temp); count--; return item; } void print() { Queue_Node* temp; temp = first; for(int i = 0; i < count; i++) { cout << " [ " << temp->Queue_Node_GetValue() << " ]"; temp = temp -> next_Node; } } }; void main() { Queue Q; Q.Enqueue(5); Q.Enqueue(13); Q.Enqueue(36); Q.Enqueue(97); Q.Enqueue(8); Q.Dequeue(); Q.print(); getch(); } | cs |
결과화면
출처
위키피디아
https://en.wikipedia.org/wiki/Queueing_theory#Service_disciplines
'Algorithm > Algorithm 기초' 카테고리의 다른 글
[알고리즘/자료구조] 선택 정렬 (Selection Sort) (0) | 2018.11.16 |
---|---|
[알고리즘/자료구조] 삽입정렬 (insertion sort) (0) | 2018.11.16 |
[알고리즘/자료구조] 스택 (Stack) (0) | 2018.11.11 |
[알고리즘/자료구조] 퀵 정렬 (Quick Sort) (0) | 2018.11.09 |
[알고리즘/자료구조] 버블 정렬 (Bubble Sort) (0) | 2018.11.09 |
Comments