Computer >> Máy Tính >  >> Lập trình >> Javascript

Thêm các phần tử vào PriorityQueue bằng cách sử dụng Javascript


Xếp thứ tự các phần tử thành PriorityQueue có nghĩa là thêm chúng vào mảng theo thứ tự ưu tiên của phần tử. Chúng tôi sẽ coi những con số cao hơn là ưu tiên cao hơn. Chúng tôi sẽ lặp qua vùng chứa cho đến khi chúng tôi tìm thấy mức độ ưu tiên thấp hơn và sau đó thêm phần tử vào đó. Nếu không, thì chúng tôi sẽ đẩy nó vào cuối vùng chứa.

Lưu ý rằng chúng tôi đang tạo đối tượng phần tử với dữ liệu và mức độ ưu tiên. Do đó, chúng ta có thể triển khai hàm enqueue như sau -

Ví dụ

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);
   }
}

Bạn có thể kiểm tra xem chức năng này có hoạt động tốt hay không bằng cách sử dụng -

Ví dụ

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

Đầu ra

Điều này sẽ cung cấp đầu ra -

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

Như bạn có thể thấy, các phần tử được sắp xếp theo thứ tự. Hàm enqueue hoạt động giống như cách chèn của sắp xếp chèn.