Queue 2

큐(Queue) 구현 및 설명

큐의 추상 자료형 Kotlin Queue 구현 코드 import java.util.* fun main() { val q : Queue = LinkedList() q.add(1) q.add(2) q.add(3) q.add(4) println(q.poll()) // 현재 tail 부분 노드 dequeue 한다. println(q.first()) // 현재 tail 부분 노드를 가져온다. println(q.elementAt(1)) // Queue 안에 index 의 노드를 가져온다. println(q.last()) // 현재 head 부분 노드를 가져온다. println(q.peek()) // stack 에서는 head 였지만 queue 에서는 tail 부분 노드를 가져온다. println(q.isEmpty(..

큐(Queue) 개념

이번에는 큐 라는 자료구조에 대해서 알아보겠습니다. 큐는 FIFO(First In First Out) 라는 형태를 지니고 있습니다. 처음 들어간 데이터가 처음으로 나온다는 뜻입니다. 큐도 예시를 들어보겠습니다. 1. 맛집에 줄을 서서 기다리는 경우 2. 운영체제가 프로세스의 작업 요청을 들어온 순서대로 넣고 CPU 가 처리를 하는 경우 3. 놀이기구를 줄을 서서 기다리는 경우 등등 큐는 일상생활에서 줄을 서서 기다리는 모든 경우에 적용이 가능합니다. 큐의 특징 이전의 스택 에서는 LinkedList 를 이용해서 head 를 기점으로 단방향 연결리스트만 생각해도 가능 했었습니다. 하지만 큐의 경우 head 가 아닌 head로부터 가장 먼 노드부터 제거가 되기 때문에 head 하나만으로는 O(N) 의 성능으..