Función PHP SplPriorityQueue compare()

La función SplPriorityQueue::compare() es una función incorporada en PHP que se usa para comparar los elementos de la cola de prioridad para colocarlos en un orden particular en la estructura de datos del montón.

Sintaxis:

int SplPriorityQueue::compare( 
    mixed $priority1 , mixed $priority2 )

Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:

  • Priority1: este parámetro contiene la prioridad del primer Node que se compara.
  • Priority2: este parámetro contiene la prioridad del segundo Node que se está comparando.

Valor devuelto: esta función devuelve el resultado de la función de comparación. Devuelve +ve entero si prioridad1 es mayor que prioridad2, 0 si ambas son iguales y -ve entero en caso contrario. 

Ejemplo:

PHP

<?php
  
// Declare a class
class priorityQueue extends SplPriorityQueue {
      
    // Compare function to compare priority
    // queue elements
    public function compare($p1, $p2) {
        if ($p1 === $p2) return 0;
        return $p1 < $p2 ? -1 : 1;
    }
}
  
// Create an object of priority queue
$obj = new priorityQueue();
  
// Insert elements into the queue
$obj->insert("Geeks",2);
$obj->insert("GFG",1);
$obj->insert("G4G",3);
$obj->insert('G',4);
  
// Display the priority queue elements
var_dump($obj);
  
?>
Producción

object(priorityQueue)#1 (3) {
  ["flags":"SplPriorityQueue":private]=>
  int(1)
  ["isCorrupted":"SplPriorityQueue":private]=>
  bool(false)
  ["heap":"SplPriorityQueue":private]=>
  array(4) {
    [0]=>
    array(2) {
      ["data"]=>
      string(1) "G"
      ["priority"]=>
      int(4)
    }
    [1]=>
    array(2) {
      ["data"]=>
      string(3) "G4G"
      ["priority"]=>
      int(3)
    }
    [2]=>
    array(2) {
      ["data"]=>
      string(5) "Geeks"
      ["priority"]=>
      int(2)
    }
    [3]=>
    array(2) {
      ["data"]=>
      string(3) "GFG"
      ["priority"]=>
      int(1)
    }
  }
}

Referencia: https://www.php.net/manual/en/splpriorityqueue.compare.php

Publicación traducida automáticamente

Artículo escrito por AshokJaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *