본문 바로가기

CS/자료구조와 알고리즘

스택(Stack)

스택은 무엇은가?

-한쪽 끝에서만 원소를 넣거나 뺄수있는 자료구조

 

스택의 성질은?

  1. 원소의 추가가 O(1)
  2. 원소의 제거가 O(1)
  3. 제일 상단의 원소 확인이 O(1)
  4. 제일 상단이 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능

스택의 용도는?

  1. 직전의 값을 저장(기억)
  2. 전체 값보다는 바로 직전값만 확인할때
  3. 거꾸로 출력하고 싶을때(함수 호출)

문제풀이에서 스택의 활용방식은?

  1. DFS
  2. 수식 괄호쌍
  3. 전위/중위/후위 표기법

 

STL

stack<int> s;
s.push(1); // 1
s.push(2); // 1 2 
s.push(3); // 1 2 3
s.push(4); // 1 2 3 4
cout << s.size() << '\n'; // 4
if(s.empth()) cout << "s is empty" << '\n'; // false

s.pop(); // 1 2 3
cout << s.top() << '\n'; // 3

'CS > 자료구조와 알고리즘' 카테고리의 다른 글

BFS  (0) 2023.02.10
덱(Deque)  (0) 2023.02.09
큐(Queue)  (0) 2023.02.08
연결리스트  (0) 2023.02.06
배열(array)  (0) 2023.02.05