1. Queue
- [설명]
- 한쪽 끝에서만 삽입이 이뤄지고, 다른 한쪽 끝에서는 삭제연산만 이뤄지는 유한 순서 리스트를 말합니다
- [특징]
- FIFO(First in First Out) 즉, 선입선출이라 생각하면 쉽습니다
- 먼저들어온 것은 먼저 나가는 형식을 말합니다
- [예시]
- 영화티켓을 예매를 위해 줄을 서서 기다리는 사람들
- 주차를 하기 위해서 차들은 한줄로 나란히 가야만하는 경우
- 컴퓨터 운영체제의 테스크 스케줄링을 말함
- CPU ⇒ System Processes
- CPU ⇒ Interactive Processes
- CPU ⇒ Batch Processes
- [기능]
- enQueue
- Data를 넣는 것을 말합니다
- deQueue
- Data를 빼내는 것을 말합니다
- isEmpty
- 비어있는지를 확인합니다
- isFull
- 꽉 차 있는지를 확인합니다
- peek
- 앞에있는 원소를 삭제하지 않고 반환합니다
- [문제점]
- 구현하고 사용할때 Data를 빼내는 deQueue()를 사용하게되면 맨 앞에있던 값이 빠져나가게 되는데 이때 front가 한칸씩 뒤로 밀려나게 되면서 가용범위가 줄어들면서, 재사용 또한 불가능하게 되는 것을 말합니다
- 재사용을 하기위해서 front를 출력하고 front뒤의 index를 하나씩 앞당긴다해도 불필요한 연산이 너무 많아지는 것도 문제입니다
- [원형 Queue]
- 문제점을 보완하기 위해서 생겨났습니다
- [우선순위 Queue - Priority Queue]
- 우선순위를 이용하여 우선순위가 높은 순서대로 나가는 것을 말합니다
- [예시]
- 병원에서 기존 환자들을 진료보다가 응급환자가 들어오게되면 먼저 진료하게되는 것을 말합니다