Maison  >  Article  >  développement back-end  >  Exemple simple de tas de structure de données PHP SPL (SplHeap)

Exemple simple de tas de structure de données PHP SPL (SplHeap)

*文
*文original
2017-12-27 09:52:111570parcourir

Cet article présente principalement des exemples d'utilisation simples du tas de structure de données (SplHeap) de la bibliothèque standard PHP SPL. Cet article explique également les connaissances pertinentes du tas maximum (SplMaxHeap) et du tas minimum (SplMinHeap). J'espère que cela aide tout le monde.

Heap est une structure de données conçue pour implémenter des files d'attente prioritaires. Elle est implémentée en construisant un tas binaire (un type d'arbre binaire). Le tas avec le plus grand nœud racine est appelé tas maximum ou grand tas racine, et le tas avec le plus petit nœud racine est appelé tas minimum ou petit tas racine. Les tas binaires sont également couramment utilisés pour le tri (tri par tas).
Comme suit : tas minimum (la priorité de tout nœud n'est pas inférieure à celle de son nœud enfant)

Regardez l'implémentation de PHP SplHeap :

Il s'agit évidemment d'une classe abstraite, et le tas maximum (SplMaxHeap) et le tas minimum (SplMinHeap) sont implémentés en en héritant. Il n'y a pas de méthodes supplémentaires pour le tas max et le tas min
L'utilisation simple de SplHeap est la suivante :


class MySimpleHeap extends SplHeap
{
  //compare()方法用来比较两个元素的大小,绝对他们在堆中的位置
  public function compare( $value1, $value2 ) {
    return ( $value1 - $value2 );
  }
}
 
$obj = new MySimpleHeap();
$obj->insert( 4 );
$obj->insert( 8 );
$obj->insert( 1 );
$obj->insert( 0 );
 
echo $obj->top(); //8
echo $obj->count(); //4
 
foreach( $obj as $number ) {
 echo $number;
}

Recommandations associées :

Utilisation de PHP SPL

PHP SPL Le tutoriel Gem_PHP oublié

Comment utiliser PHP SPL et son tutoriel power_PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn