알고리즘 공부
<알고리즘/c++>큐(queue)
컴퓨터과학
2019. 10. 14. 17:44
큐란?
큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다. 영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다. -출처 위키
말그대로 먼저 들어온 데이터가 먼저 나간다는걸 의미합니다.
큐는 위의 그림처럼 표현을 합니다.
코드를 확인해보겠습니다.
링크트 리스트나 배열로 하는게 제일 좋지만 저는 그냥 개념만 보여주기위해서 vector를 이용하겠습니다.
먼저 queue함수를 만듭니다.
int main() {
queue();
system("pause");
return 0;
}
queue함수를 확인해보겠습니다.
void queue() {
vector<int> num;
static int stackData = -1;
int count;
while (1) {
cout << "push 1번, pop 2번, 끝내기 아무 숫자 입력";
cout << endl;
cin >> count;
if (count == 1) {
stackData++;
num.push_back(stackData);
}
else if (count == 2) {
if(stackData !=-1){
num.erase(num.begin());
}
}
else {
break;
}
}
cout << "결과" << endl;
for (int i = 0; i < num.size(); i++)
cout << num[i] << endl;
}
하나씩 보시면 stack과 마찬가지로
num: 저장될 공간
stackData : 쌓이는 데이터
count :push 할지 pop할지 정해주는 숫자
보시면 push로 그대로 넣어주고
pop 경우에 저희는 먼저들어온 시점부터 빼줍니다.
if (count == 1) {
stackData++;
num.push_back(stackData);
}
else if (count == 2) {
if(stackData !=-1){
num.erase(num.begin());
}
}