


Exemple de code d'implémentation de la file d'attente PHP
Cet article vous apporte des exemples de code sur l'implémentation de la file d'attente PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
La file d'attente est une table linéaire spéciale, qui permet uniquement les opérations de suppression à l'avant de la table, qui peuvent être appelées front, et les opérations d'insertion à l'arrière de la table, qui peuvent être appelé arrière fonctionner. La file d'attente, comme la pile, est une liste linéaire avec des opérations restreintes. La différence avec la pile est que la file d'attente suit le principe « premier entré, premier sorti », tandis que la pile suit le principe « premier entré, dernier sorti ». La fin de la file d'attente où l'opération d'insertion est effectuée est appelée la queue de la file d'attente, et la fin où l'opération de suppression est effectuée est appelée la tête de la file d'attente. Seules les opérations d'insertion et de suppression sont autorisées en fin de file d'attente. les opérations sont autorisées en tête de file d’attente.
Les éléments de données de la file d'attente sont également appelés éléments de file d'attente. L'insertion d'un élément à la fin de la file d'attente est appelée mise en file d'attente, et la suppression d'un élément en tête de file d'attente est appelée sortie de file d'attente. Code de référence spécifique d'implémentation :
<?php /** * php队列算法 * * Create On 2010-6-4 * Author Been * QQ:281443751 * Email:binbin1129@126.com **/ class data { //数据 private $data; public function __construct($data){ $this->data=$data; echo $data.":哥进队了!<br>"; } public function getData(){ return $this->data; } public function __destruct(){ echo $this->data.":哥走了!<br>"; } } class queue{ protected $front;//队头 protected $rear;//队尾 protected $queue=array('0'=>'队尾');//存储队列 protected $maxsize;//最大数 public function __construct($size){ $this->initQ($size); } //初始化队列 private function initQ($size){ $this->front=0; $this->rear=0; $this->maxsize=$size; } //判断队空 public function QIsEmpty(){ return $this->front==$this->rear; } //判断队满 public function QIsFull(){ return ($this->front-$this->rear)==$this->maxsize; } //获取队首数据 public function getFrontDate(){ return $this->queue[$this->front]->getData(); } //入队 public function InQ($data){ if($this->QIsFull())echo $data.":我一来咋就满了!(队满不能入队,请等待!)<br>"; else { $this->front++; for($i=$this->front;$i>$this->rear;$i--){ //echo $data; if($this->queue[$i])unset($this->queue[$i]); $this->queue[$i]=$this->queue[$i-1]; } $this->queue[$this->rear+1]=new data($data); //print_r($this->queue); //echo $this->front; echo '入队成功!<br>'; } } //出队 public function OutQ(){ if($this->QIsEmpty())echo "队空不能出队!<br>"; else{ unset($this->queue[$this->front]); $this->front--; //print_r($this->queue); //echo $this->front; echo "出队成功!<br>"; } } } $q=new queue(3); $q->InQ("小苗"); $q->InQ('马帅'); $q->InQ('溜冰'); $q->InQ('张世佳'); $q->OutQ(); $q->InQ("周瑞晓"); $q->OutQ(); $q->OutQ(); $q->OutQ(); $q->OutQ();
Il y a deux classes dans ce cas :
La première est la classe data, utilisée pour implémentation Stockage des données et entrée et sortie des éléments de file d'attente ;
La seconde est la classe de file d'attente, qui est utilisée pour certaines opérations d'entrée et de sortie des éléments de file d'attente.
La file d'attente contient quatre attributs :
front (la tête de la file d'attente)
Rear (la queue de la file d'attente)
maxsize (la longueur de la file d'attente, c'est-à-dire le nombre d'éléments de file d'attente)
File d'attente (un objet qui stocke tous les éléments de file d'attente qui ont été mis en file d'attente)
Description du scénario :
1. Lors de l'initialisation de la file d'attente, générez une file d'attente et transmettez Entrez un paramètre comme maxsize pour initialiser la file d'attente, définissez l'arrière de la file d'attente sur 0 et définissez l'avant de la file d'attente sur 0. À ce stade, il n'y a que l'élément 0 dans le file d'attente, et l'arrière et l'avant y pointent.
2. Lorsque vous rejoignez la file d'attente, vous devez d'abord déterminer si la file d'attente est pleine (avant-arrière == maxsize). Si elle est pleine, l'insertion n'est pas autorisée. Si elle n'est pas pleine, l'insertion est autorisée. autorisé. Lors de l'insertion, front est incrémenté, puis tous les éléments de la file d'attente sont avancés d'une position (en laissant la position de queue de la file d'attente pour insérer de nouveaux éléments), puis un nouvel objet de données est généré et inséré dans la position de queue du file d'attente.
3. Lors de la sortie de la file d'attente, déterminez si la file d'attente est vide (avant == arrière). Si elle est vide, elle ne peut pas être retirée de la file d'attente. S'il n'est pas vide, supprimez l'objet pointé par front et décrémentez front pour terminer la sortie de la file d'attente.
Les résultats en cours d'exécution sont les suivants :
小苗:哥进队了! 入队成功 马帅:哥进队了! 入队成功 溜冰:哥进队了! 入队成功 张世佳:我一来咋就满了!(队满不能入队,请等待!) 小苗:哥走了! 出队成功! 周瑞晓:哥进队了! 入队成功 马帅:哥走了! 出队成功! 溜冰:哥走了! 出队成功! 周瑞晓:哥走了! 出队成功! 队空不能出队! 队空不能出队!
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Alipay Php ...

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.
