Javascript의 큐 데이터 구조

대기열은 Front라고 하는 한쪽 끝에서 요소 삭제가 발생할 수 있고 Rear라고 하는 다른 쪽 끝에서 삽입이 발생할 수 있는 요소의 선형 목록입니다.

대기열의 첫 번째 요소가 목록에서 제거되는 첫 번째 요소가 됩니다. 큐는 FIFO(FIRST IN FIRST OUT)라고도 합니다.

대기열을 줄처럼 생각하십시오. 수평입니다. 라인/대기열의 첫 번째 항목은 첫 번째 항목입니다. 선은 왼쪽에서 시작하여 오른쪽에서 끝납니다. 따라서 배열의 "마지막"요소를 제거하려면 pop()을 사용합니다.

대기열의 적용


  • 단일 공유 리소스에 대한 요청 제공(예: PointerEvent, CPU 작업 예약 등)
  • 실생활에서 콜센터 전화 시스템(서비스 담당자가 한가할 때까지 기다려야 함)
  • 실시간 시스템에서 인터럽트 처리.

  • 기본 조작



    수행할 수 있는 기본 연산은 Enqueue , dequeuedisplay 입니다.

    Enqueue(삽입 용어) - 큐에 항목을 추가합니다.

    dequeue(삭제의 용어) - 대기열에서 항목 제거

    IsEmpty - 대기열이 비어 있는지 확인합니다.

    IsFull - 큐가 가득 찼는지 확인합니다.

    Peek - 제거하지 않고 대기열의 맨 앞에 있는 요소를 가져옵니다.

    대기열 사용 방법



    대기열 데이터 구조를 만듭니다. 대기열은 메서드enqueuedequeue가 있는 클래스여야 합니다. 대기열에 추가하면 다음까지 요소를 저장해야 합니다.
    제거됩니다.

    구현할 기능

    enqueue(item) 
    dequeue() 
    front() 
    isEmpty()
    

    예 사용법



    const q = new Queue();
    q.enqueue(1);
    q.dequeue(); // returns 1;
    



    // Queue class 
    class Queue {
      constructor() {
        // Array is used to implement a Queue
        this.data = [];
      }
    
      // Functions to be implemented 
      // enqueue(item) 
      // dequeue() 
      // front() 
      // isEmpty() 
    
      // Adds an element to the queue
      enqueue(item) {
        this.data.unshift(item);
      }
      // removing element from the queue 
      // returns underflow when called  
      // on empty queue 
    
      dequeue() {
        if (this.isEmpty()) {
          return "Underflow";
        }
        return this.data.shift();
      }
    
      // front function 
      front() {
        // returns the Front element of  
        // the queue without removing it. 
        if (this.isEmpty())
          return "No elements in Queue";
        return this.data[0];
      }
    
      // isEmpty function 
      isEmpty() {
        // return true if the queue is empty. 
        return this.data.length === 0;
      }
    }
    
    module.exports = Queue;
    

    이 기사가 도움이 되었으면 이 채널 팔로우를 클릭하여 Javascript를 사용한 데이터 구조에 대한 추가 기사를 확인하십시오.

    좋은 웹페이지 즐겨찾기