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

Javascript를 사용하여 PriorityQueue에 요소 추가


PriorityQueue에 요소를 추가한다는 것은 요소의 우선 순위에 따라 배열에 추가하는 것을 의미합니다. 더 높은 숫자를 더 높은 우선 순위로 간주합니다. 더 낮은 우선 순위를 찾을 때까지 컨테이너를 반복한 다음 거기에 요소를 추가합니다. 그렇지 않은 경우 컨테이너 끝에서 푸시합니다.

데이터 및 우선 순위를 사용하여 요소 개체를 생성하고 있음에 유의하십시오. 따라서 우리는 다음과 같이 enqueue 기능을 구현할 수 있습니다 -

예시

enqueue(data, priority) {
   // Check if Queue is full
   if (this.isFull()) {
      console.log("Queue Overflow!");
      return;
   }
   let currElem = new this.Element(data, priority);
   let addedFlag = false;
   // Since we want to add elements to end, we'll just push them.
   for(let i = 0; i < this.container.length; i ++) {
       if(currElem.priority < this.container[i].priority) {
          this.container.splice(i, 0, currElem);
         addedFlag = true; break;
      }
   }
   if (!addedFlag) {
      this.container.push(currElem);
   }
}

를 사용하여 이 기능이 제대로 작동하는지 확인할 수 있습니다.

예시

let q = new PriorityQueue(4);
q.enqueue("Hello", 3);
q.enqueue("World", 2);
q.enqueue("Foo", 8);
q.display();

출력

이것은 출력을 줄 것입니다 -

[ { data: 'World', priority: 2 },
  { data: 'Hello', priority: 3 },
  { data: 'Foo', priority: 8 } ]

보시다시피 요소는 정렬된 순서로 되어 있습니다. enqueue 함수는 삽입 정렬의 삽입처럼 작동합니다.