자료구조 Queue 는 선입 선출 (FIFO) First In First Out의 특징을 가집니다.
배열과 두 개의 index를 이용해서 간단하게 구현 할 수 있습니다.
push
값을 [end]에 삽입, end index 증가
pop
[begin] 출력, begin index 증가
size
end - begin
아래의 코드는 예시 코드입니다.
#include <iostream>#include <string>using namespace std;int main(){std::ios_base::sync_with_stdio();int queue[10000] = {0,};int begin = 0;int end = 0;int n = 0;string command;int value;cin >> n;while (n--){cin >> command;if (command == "push"){cin >> value;queue[end] = value;end++;}else if (command == "pop"){if (begin == end){cout << "-1" << '\n';continue;}cout << queue[begin] << '\n';begin++;}else if (command == "size"){cout << end - begin << '\n';}else if (command == "empty"){if (end - begin == 0){cout << "1" << '\n';}else{cout << "0" << '\n';}}else if (command == "front"){if (end - begin == 0){cout << "-1" << '\n';continue;}cout << queue[begin] << '\n';}else if (command == "back"){if (end - begin == 0){cout << "-1" << '\n';continue;}cout << queue[end - 1] << '\n';}}return 0;}
'프로그래밍 > C++' 카테고리의 다른 글
Function Pointer 사용하기 (0) | 2018.01.29 |
---|---|
C++ Template이란 (0) | 2018.01.14 |
List Vector Copy (0) | 2017.05.20 |
C++ Quick sort 구현 코드 (2) | 2017.05.19 |
scanf(%d 문자 입력시 무한루프 (0) | 2017.03.20 |