[C++] 스택, 큐, 덱
스택
- 한 쪽 끝에서만 원소를 넣고 빼는 구조
- LIFO(Last In First Out): 나중에 들어온 것이 먼저 나감
- 헤더:
#include<stack>
- 선언:
stack<데이터타입>이름
기본 함수
- stack을 선언했을 때
stack <int> s;
- 함수 사용법
s.push(a): stack에 a 추가
s.pop(): 제일 마지막에 추가된 원소 제거
s.top(): 제일 마지막에 추가된 원소 반환
s.empty(): stack이 비어있으면 true, 아니면 false 반환
s.size(): stack에 들어있는 원소의 개수 반환
#include<iostream>
#include<stack>
using namespace std;
stack<int>s;
int main(){
s.push(1); //s={1}
s.push(2); //s={1,2}
s.push(3); //s={1,2,3}
s.pop(); //s={1,2}
cout<<s.top()<<'\n'; //2
cout<<s.empty()<<'\n'; //0
cout<<s.size()<<'\n'; //2
return 0;
}
큐
- 한 쪽으로는 원소를 넣고 다른 쪽으로 빼는 구조
- FIFO(First In First Out): 먼저 들어온 것이 먼저 나감
- 헤더: #include
- 선언: queue<데이터타입>이름
기본함수
- queue를 선언했을 때
queue <int> q;
- 함수 사용법
q.push(a): stack에 a 추가
q.pop(): 제일 마지막에 추가된 원소 제거
q.top(): 제일 마지막에 추가된 원소 반환
q.empty(): stack이 비어있으면 true, 아니면 false 반환
q.size(): stack에 들어있는 원소의 개수 반환
#include<iostream>
#include<queue>
using namespace std;
queue<int>q;
int main(){
q.push(1); //q={1}
q.push(2); //q={1,2}
q.push(3); //q={1,2,3}
q.front(); //1
q.back(); //3
q.pop(); //q={2,3}
cout<<q.empty()<<'\n'; //0
cout<<q.size()<<'\n'; //2
return 0;
}
덱
- 양쪽에서 모두 원소를 넣고 뺄 수 있는 구조
- 헤더:
#include<deque>
- 선언:
deque<데이터타입>이름
기본 함수
- 덱을 선언했을 때
deque<int>dq;
- 함수 사용법
dq.push_front(a): deque 앞에 a 추가
dq.push_back(a): deque 뒤에 a 추가
dq.pop_front(): deque 앞의 원소 제거
dq.pop_back(): deque 뒤의 원소 제거
dq.front(): 제일 앞의 원소 반환
dq.back(): 제일 뒤의 원소 반환
dq.empty(): deque가 비어있으면 true, 아니면 false 반환
dq.size(): deque에 들어있는 원소의 개수 반환
#include<iostream>
#include<deque>
using namespace std;
deque<int>dq;
int main(){
dq.push_front(1); //dq={1}
dq.push_front(2); //dq={2,1}
dq.push_back(3) //dq={2,1,3}
dq.front(); //1
dq.back(); //3
dq.pop_front() //dq={1,3}
dq.pop_back() //dq={1}
cout<<dq.empty()<<'\n'; //0
cout<<dq.size()<<'\n'; //1
return 0;
}
Author And Source
이 문제에 관하여([C++] 스택, 큐, 덱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@songfox00/stack-queue-deque저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)