📌 스택(Stack)이란 무엇일까?
스택(Stack)은 후입선출(LIFO, Last In First Out) 방식으로 동작하는 선형 자료 구조입니다.
위의 사진과 같이 데이터가 차곡차곡 쌓아 올리는 형태이며, 가장 마지막에 삽입된 데이터가 가장 먼저 삭제되는 구조를 가지고 있습니다.
간단한 예시로는 책상에 책을 쌓아두는 것과 포개 둔 일회용 종이컵을 하나씩 꺼내는 방식을 떠올리면 이해하기 쉬울 것 같네요 😋
스택에서는 push 연산을 통해 새로운 데이터를 top 위치에 삽입하고, pop 연산을 통해 top 위치의 데이터를 제거할 수 있습니다.
데이터는 'top'을 통해서만 접근 가능하며, 중간에 있는 데이터를 직접 수정하거나 삭제할 수 없습니다.
스택(Stack)의 사용 사례
- 웹 브라우저 방문기록 (뒤로 가기)
- 실행 취소(undo)
- 역순 문자열 만들기
- 후위 표기법 계산
📌 큐(Queue)의 개념
큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 "선입선출(FIFO, First In First Out)" 방식의 선형 자료구조입니다.
예시를 들자면, 은행에서 줄을 서서 기다리는 손님이 먼저 온 순서대로 서비스를 받는 것을 예시로 들면 좋을 것 같네요.
큐는 front에서 데이터를 삭제(dequeue)하고, rear에서 데이터를 삽입(enqueue)합니다.
즉, "한쪽 끝에서 데이터를 추가하고 반대쪽 끝에서만 삭제"할 수 있습니다.
큐(Queue)의 사용 사례
- 은행 업무
- 대기열 순서와 같은 우선순위의 작업 예약 등
- 서비스 센터의 대기시간
- 프로세스 관리
스택(Stack) vs 큐(Queue) 비교
특성 | 스택(Stack) | 큐(Queue) |
구조 | 후입선출(LIFO) | 선입선출(FIFO) |
삽입 방식 | push (top에서 삽입) | enqueue (rear에서 삽입) |
삭제 방식 | pop (top에서 삭제) | dequeue (front에서 삭제) |
접근 방식 | top을 통해서만 가능 | front에서만 삭제, rear에서 삽입 |
사용 사례 | 실행 취소(undo), 역순 문자열 | 은행 업무, 프로세스 관리 |
Reference
'❕Data structure' 카테고리의 다른 글
[Data Structure] 선형(Linear) & 비선형(NonLinear) 자료구조 (0) | 2022.03.05 |
---|---|
[자료구조] 트리(Tree)란 (3) | 2021.10.10 |
[자료구조] 연결 리스트(Linked List)는 무엇일까? (0) | 2021.09.20 |