자료구조 - Queue

marafo·2020년 9월 8일
0

큐와 더불어 추상자료형(Abstract Data Type)의 한 종류이다. 먼저 들어온 데이터가 먼저 나가는 구조로 선입선출(FIFO: First In First Out)의 특성을 가지고 있다. 예를 들어 은행이나 영화관에서 줄을 기다리는 고객들의 순서를 처리하는 방식과 유사하다고 할 수 있다.

큐의 구현 방법에는 다양하지만 가장 대표적이면서 간단한 방식으로 선형큐를 꼽을 수 있다. 선형큐는 1차원 배열을 만들어서 데이터의 삽입,삭제를 진행한다.

새로운 데이터가 뒷단에서 추가되고 앞단에서는 데이터가 삭제되기 때문에 삽입, 삭제가 모두 한 쪽에서 일어나지 않는다. 데이터 추가를 Enqueue, 삭제를 Dequeue라고 정의한다. back(rear)은 큐의 마지막 데이터 front는 첫 번째 데이터를 가리킨다. 큐를 사용하는 이유는 컴퓨터 내의 cpu와 주변기기 사이에 속도 차이가 발생하기 때문에 cpu자원의 할당을 효율적으로 만들기 위해서이다.

자바스크립트의 선형 큐 구현은 다음과 같다.

class Queue{ 
	constructor(){
	  this.linearQueue = [];
	}
	toString(){
	  let result = "";
	  for(value of this.linearQueue){
		result = result + value + "\n";
	  }
	  return result;
	}
	enqueue(element){
	  this.linearQueue.push(element);
	}
	dequeue(){
	  return this.linearQueue.shift();
	}
	front(){
	  return this.linearQueue[0];
	}
	back(){
	  return this.linearQueue[this.linearQueue.length-1];
	}
	empty(){
	  if(this.linearQueue.length === 0){
		return true;
	  }
	  else{
		return false;
	  }
	}
  }

참고
1) https://www.javascripttutorial.net/javascript-queue/
2) https://jeong-pro.tistory.com/125
3) C언어로 쉽게 풀어 쓴 자료구조 - 천인국

profile
프론트 개발자 준비

0개의 댓글