Stack (스택)
Stack(스택) 개념
- LIFO(Last In First Out) 형식으로 가장 나중에 추가된 데이터가 가장 먼저 나오는 자료구조이다.
Stack(스택) 연산
- pop() : stack에서 가장 나중에 추가된 데이터 즉, 가장 위에 있는 데이터를 제거한다.
- push(data) : stack 맨 위에 data를 추가한다.
- peek() : stack의 가장 나중에 추가된 데이터 즉, 가장 위에 있는 데이터를 반환한다.
- isEmpty() : stack이 비어있는지 여부를 확인, 비어있으면 true를 반환한다.
Stack(스택) 사용 예
- 웹 브라우저 방문기록 (뒤로가기)
- 실행 취소 (undo)
- 문자열 역순 만들기
- 올바른 괄호 문자열 판단하기
Queue
Queue(큐) 개념
- FIFO(First In First Out) 형식으로 먼저 추가된 데이터의 순서대로 먼저 나오는 자료구조이다.
Queue(큐) 연산
- add(data) : data를 리스트의 마지막 부분에 추가한다.
- remove() : 리스트의 첫번째 인덱스에 해당하는 항목을 제거한다.
- peek() : queue에서 첫번째로 저장된 값을 반환한다.
- isEmpty() : queue가 비어있는지 여부를 확인, 비어있으면 true를 반환한다.
Queue(큐) 사용 예
- BFS (너비 우선 탐색)
- 캐시 (Cache) 구현
- 우선순위에 따른 작업 예약 (인쇄 대기열)
- 콜센터 고객 대기시간