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 함수는 삽입 정렬의 삽입처럼 작동합니다.