Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

Priority Queue

/*PriorityQueue is an abstract data type that can be implemented in many different ways*/
class PriorityQueue{
    constructor()
    {
    this.items   = []        
    }
  
  
  enqueue(element, priority)
{
var qElement = new QElement(element, priority);
var contains = false;

/*check if element already in the items array*/
/*then check what position the element should be added*/
/*when an element is higher priority, add new element one position behind it*/
for (var i=0; i<this.items.length; i++)
{
if(this.items[i].priority > qElement.priority)
{
this.items.splice(i, 0, qElement);
contains = true;
break
}
}

if(!contains)
  {
this.items.push(qElement);
    }
  
  
}/*enqueue*/

  dequeue()
{
if(this.isEmpty())
{
return “Underflow”
}
return this.items.shift();

}
  
  front()
{

if (this.isEmpty())

return “No elements in Queue”;

return this.items[0];

}
  
  isEmpty()
  {
  return this.items == 0;
  }
  
  printPQueue()
{
  var str = "";
  for(var i =0; i<this.items.length; i++)
  {
    str += this.items[i].element + " ";
  }
  return str;
  

  
}
  
}

Comment

priority queue

// C++ program for the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Structure for the elements in the
// priority queue
struct item {
    int value;
    int priority;
};
 
// Store the element of a priority queue
item pr[100000];
 
// Pointer to the last index
int size = -1;
 
// Function to insert a new element
// into priority queue
void enqueue(int value, int priority)
{
    // Increase the size
    size++;
 
    // Insert the element
    pr[size].value = value;
    pr[size].priority = priority;
}
 
// Function to check the top element
int peek()
{
    int highestPriority = INT_MIN;
    int ind = -1;
 
    // Check for the element with
    // highest priority
    for (int i = 0; i <= size; i++) {
 
        // If priority is same choose
        // the element with the
        // highest value
        if (highestPriority
                == pr[i].priority
            && ind > -1
            && pr[ind].value
                   < pr[i].value) {
            highestPriority = pr[i].priority;
            ind = i;
        }
        else if (highestPriority
                 < pr[i].priority) {
            highestPriority = pr[i].priority;
            ind = i;
        }
    }
 
    // Return position of the element
    return ind;
}
 
// Function to remove the element with
// the highest priority
void dequeue()
{
    // Find the position of the element
    // with highest priority
    int ind = peek();
 
    // Shift the element one index before
    // from the position of the element
    // with highest priority is found
    for (int i = ind; i < size; i++) {
        pr[i] = pr[i + 1];
    }
 
    // Decrease the size of the
    // priority queue by one
    size--;
}
 
// Driver Code
int main()
{
    // Function Call to insert elements
    // as per the priority
    enqueue(10, 2);
    enqueue(14, 4);
    enqueue(16, 4);
    enqueue(12, 3);
 
    // Stores the top element
    // at the moment
    int ind = peek();
 
    cout << pr[ind].value << endl;
 
    // Dequeue the top element
    dequeue();
 
    // Check the top element
    ind = peek();
    cout << pr[ind].value << endl;
   
      // Dequeue the top element
    dequeue();
   
      // Check the top element
    ind = peek();
    cout << pr[ind].value << endl;
 
    return 0;
}
Comment

Priority Queues

For priority queues, each element in the queue has a priority property and these elements are ordered according to the priority property.
Comment

Priority Queue Element

class QElement:
    def __init__(self, element, priority):
        self.element = element
        self.priority = priority
Comment

Priority Queue Element

class QElement{
    constructor(element, priority)
    {
        this.element = element;
        this.priority = priority;   
    }
}
Comment

priority queue

import java.util.PriorityQueue;
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add();
pq.size();
pq.peek();//read
pq.poll();//read and remove
pq.remove();//remove
Comment

Priority Queue

// Priority Queue implementation in C

#include <stdio.h>
int size = 0;
void swap(int *a, int *b) {
  int temp = *b;
  *b = *a;
  *a = temp;
}

// Function to heapify the tree
void heapify(int array[], int size, int i) {
  if (size == 1) {
    printf("Single element in the heap");
  } else {
    // Find the largest among root, left child and right child
    int largest = i;
    int l = 2 * i + 1;
    int r = 2 * i + 2;
    if (l < size && array[l] > array[largest])
      largest = l;
    if (r < size && array[r] > array[largest])
      largest = r;

    // Swap and continue heapifying if root is not largest
    if (largest != i) {
      swap(&array[i], &array[largest]);
      heapify(array, size, largest);
    }
  }
}

// Function to insert an element into the tree
void insert(int array[], int newNum) {
  if (size == 0) {
    array[0] = newNum;
    size += 1;
  } else {
    array[size] = newNum;
    size += 1;
    for (int i = size / 2 - 1; i >= 0; i--) {
      heapify(array, size, i);
    }
  }
}

// Function to delete an element from the tree
void deleteRoot(int array[], int num) {
  int i;
  for (i = 0; i < size; i++) {
    if (num == array[i])
      break;
  }

  swap(&array[i], &array[size - 1]);
  size -= 1;
  for (int i = size / 2 - 1; i >= 0; i--) {
    heapify(array, size, i);
  }
}

// Print the array
void printArray(int array[], int size) {
  for (int i = 0; i < size; ++i)
    printf("%d ", array[i]);
  printf("
");
}

// Driver code
int main() {
  int array[10];

  insert(array, 3);
  insert(array, 4);
  insert(array, 9);
  insert(array, 5);
  insert(array, 2);

  printf("Max-Heap array: ");
  printArray(array, size);

  deleteRoot(array, 4);

  printf("After deleting an element: ");

  printArray(array, size);
}
Comment

PREVIOUS NEXT
Code Example
Javascript :: node_modules is not generated in docker 
Javascript :: puppeteer click is not working 
Javascript :: ajax fail function parameters 
Javascript :: knockout empty an observable array 
Javascript :: oop js 
Javascript :: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile 
Javascript :: $Javascript $.get( 
Javascript :: reverse an array in javascript 
Javascript :: replace methord 
Javascript :: symfony iterate over entity 
Javascript :: react-bootstrap-sweetalert is not running 
Javascript :: auto linting and testing in react tyescript 
Javascript :: sequelzie order by 
Javascript :: load content on user language in javascript 
Javascript :: how to check my javascript code 
Javascript :: node js orderby method 
Javascript :: Plumsail - DataTable Populating Dropdown 
Javascript :: react-folder tree example 
Javascript :: angular universal prerender 
Javascript :: Javascript - Dependency between arguments of partial applications 
Javascript :: angularjs checking array of objects 
Javascript :: angularjs Manipulate an element that is conditionally rendered 
Javascript :: Porting Promise.all functionality from AngularJs to VueJs 
Javascript :: React Native : Add a band of color in the background 
Javascript :: Scaling elements proportionally using CSS and JQUERY 
Javascript :: JavaScript delete atray item 
Javascript :: get copied text javascript 
Javascript :: javascript get elemet last of array 
Javascript :: three.js animate object regardless screen fps 
Javascript :: Adding Proof of Work to blockchain 
ADD CONTENT
Topic
Content
Source link
Name
1+1 =