📒 갈무리 - 스택(Stack)
📌 스택이란?
- 데이터를 쌓아 올린 형태의 자료구조
- LIFO(Last-In-First-Out) 구조(후입선출)
ex) 브라우저의 뒤로 가기 기능, Ctrl + z(Undo) 기능
- 스택의 최상단을 'Top'이라 한다.(가장 먼저 나올 데이터)
Push(Data) : 스택에 데이터를 밀어 넣는 함수
- 데이터를 밀어 넣다가 스택의 크기가 넘치게 되면 Stack Overflow가 발생한다.
Pop() : 스택에서 데이터를 꺼내는 함수
- 항상 하나씩, 맨 위의 데이터부터 꺼내온다.
- 데이터를 꺼내다가 데이터가 없다면 Stack Underflow가 발생한다.
IsFull() : 스택이 가득 차 있는지 확인하는 함수
IsEmpty() : 스택이 비어있는지 확인하는 함수
Peek() : Pop과 유사하지만 스택 안에서의 데이터를 삭제하지 않고 확인만 하는 함수
// C#
// 제네릭 타입이 아닌 스택도 존재하지만 제네릭 타입의 스택을 사용할 것을 권고
Stack<int> stack = new Stack<int>(); // 선언
// 데이터 넣기
stack.Push(1); // 1
stack.Push(2); // 2 1
stack.Pop(); // 데이터 꺼내오기 (2를 꺼내옴)
stack.Push(3); // 3 1
// Top 데이터 확인
int peek = stack.Peek(); // 3