Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

자바스크립트에서 큐 생성


JavaScript의 배열이 Queue의 모든 기능을 제공하지만 자체 Queue 클래스를 구현해 보겠습니다. 우리 클래스는 다음과 같은 기능을 가질 것입니다 -

  • enqueue(element):대기열에 요소를 추가하는 함수입니다.
  • dequeue():대기열에서 요소를 제거하는 함수입니다.
  • peek():큐의 맨 앞에서 요소를 반환합니다.
  • isFull():대기열의 요소 제한에 도달했는지 확인합니다.
  • isEmpty():대기열이 비어 있는지 확인합니다.
  • clear():모든 요소를 ​​제거합니다.
  • display():배열의 모든 내용을 표시

큐의 최대 크기를 취하는 생성자와 이 클래스에 대한 다른 함수를 구현할 때 도움이 되는 도우미 함수를 사용하여 간단한 클래스를 정의하는 것으로 시작하겠습니다. 스택을 구현한 것처럼 배열을 사용하여 대기열도 구현합니다.

예시

class Queue {
   constructor(maxSize) {
      // Set default max size if not provided
      if (isNaN(maxSize)) {
         maxSize = 10;
       }
      this.maxSize = maxSize;
      // Init an array that'll contain the queue values.
      this.container = [];
   }
   // Helper function to display all values while developing
   display() {
      console.log(this.container);
   }
   // Checks if queue is empty
   isEmpty(){
      return this.container.length === 0;
   }
   // checks if queue is full
   isFull() {
      return this.container.length >= this.maxSize;
   }
}

큐가 가득 찼는지 비어 있는지 확인하기 위해 isFull 및 isEmpty라는 2개의 함수도 추가로 정의했습니다.

isFull 함수는 컨테이너의 길이가 maxSize 이상인지 확인하고 그에 따라 반환합니다.

isEmpty 함수는 컨테이너의 크기가 0인지 확인합니다.

이는 다른 작업을 정의할 때 도움이 됩니다. 이 시점부터 정의한 함수는 모두 Queue 클래스에 들어갑니다.