스택(Stack) 이란?
마지막에 넣은 데이터가 가장 먼저 선출되는걸 볼수있는 LIFO(Last In Fist Out) 구조입니다
사용 해더파일
#include <stack>
선언방식
stack<타입> 변수이름
stack<int> stk;
stack<char> stk;
스택기본함수
스택에 데이터 추가시키기
stk.push(data)
스택의 가장 윗 데이터 반환하기
stk.pop()
스택의 top 데이터 삭제하기
stk.pop()
스택이 비어있는가 를 확인하기
stk.empty()
스택의 사이즈 반환하기
stk.size()
스택 스왑(내용 변경하기)
swap(data1, data2)
사용방식 예제
char 타입으로 '1' '2' '3'을 순서대로 stack에 저장하고
가장 위에있는것부터 나오게 한다
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<char> stk;
stk.push('1');
stk.push('2');
stk.push('3');
while (!stk.empty())
{
cout << stk.top() << ' ';
stk.pop();
}
return 0;
}
결과
int타입으로 스택1과 스택2를 123, 10,20,30 을 넣고
top으로 스택을 꺼낼때 swap처리방식으로 출력
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> stk1;
stack<int> stk2;
stk1.push(1);
stk1.push(2);
stk1.push(3);
stk2.push(10);
stk2.push(20);
stk2.push(30);
swap(stk1, stk2);
while (!stk1.empty())
{
cout << stk1.top() << endl;
stk1.pop();
}
return 0;
}
결과
큐(Queue) 이란?
스택의 개념과 반대되는 먼저 넣은 자료가 먼저 나오는 선입선출FIFO(First In First Out)의 자료형입니다
선언방식
queue<int> que;
맨 앞 원소 리턴
q.front();
맨 뒤 원소 리턴
q.back();
'C++ 프로그래머스 다이어리 > Stack,Queue' 카테고리의 다른 글
프로그래머스(C++) - 괄호 회전하기 (0) | 2025.10.14 |
---|---|
프로그래머스(C++) - 주식가격 (0) | 2025.10.08 |
프로그래머스(C++) - 프로세스 (0) | 2025.10.08 |
프로그래머스(C++) - 기능개발 (0) | 2025.08.07 |
프로그래머스(C++) - 짝지어 제거하기 (0) | 2025.08.02 |