Pile de base de la structure de données PHP
Cet article présente principalement la pile de base de la structure de données PHP, qui a une certaine valeur de référence. Maintenant, je la partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
Pile et file d'attente
. Les piles et les files d'attente sont des structures linéaires comme la liste doublement chaînée mentionnée précédemment, qui constitue la base de la structure de données PHP réelle.
Quelles sont les caractéristiques de la stack
La stack suit le principe du dernier entré, premier sorti (LIFO). Cela signifie que la pile n'a qu'une seule sortie pour pousser des éléments et faire éclater des éléments. Lorsque nous effectuons des opérations de poussée ou de pop, nous devons faire attention à savoir si la pile est pleine ou si la pile est vide.
Opérations courantes
Sans plus tarder, regardons directement les opérations courantes que nous effectuons sur la pile.
push
pop
haut
isEmpty
...
Implémentation PHP
Nous définissons d'abord une StackInterface.
interface StackInterface { public function push(string $item); public function pop(); public function top(); public function isEmpty(); }
Examinons l'implémentation de la pile basée sur un tableau
class ArrStack implements StackInterface { private $stack; private $limit; public function __construct(int $limit = 20) { $this->limit = $limit; $this->stack = []; } public function __get($val) { return $this->$val; } public function push(string $data = null) { if (count($this->stack) < $this->limit) { array_push($this->stack, $data); } else { throw new \OverflowException('stack is overflow'); } } public function pop() { if ($this->isEmpty()) { throw new \UnderflowException('stack is empty'); } else { return array_pop($this->stack); } } public function isEmpty() { return empty($this->stack); } public function top() { return end($this->stack); }
Grâce à la puissante structure de tableau de PHP, nous pouvons facilement écrire les méthodes de fonctionnement de base de la pile. Effectivement, la meilleure langue du monde est à la hauteur de sa réputation.
Ensuite, un camarade de classe a dit, vous avez dit que la pile et la liste chaînée précédente sont toutes deux des structures linéaires. Pouvez-vous utiliser directement la liste chaînée pour implémenter la pile ? Cette question est très pointue et la réponse est oui.
Peut-être que des camarades de classe intelligents ont deviné que j'avais déjà défini une interface de pile, et que l'implémentation de la pile doit être plus que celle ci-dessus. Regardons l'implémentation basée sur les listes chaînées.
class LinkedListStack implements StackInterface { private $stack; private $limit; public function __construct(int $limit) { $this->limit = $limit; $this->stack = new LinkedList(); } public function top() { return $this->stack->getNthNode($this->stack->getSize() - 1)->data; } public function isEmpty() { return $this->stack->getSize() === 0; } public function pop() { if ($this->isEmpty()) { throw new \UnderflowException('stack is empty'); } else { $lastItem = $this->top(); $this->stack->deleteLast(); return $lastItem; } } public function push(string $item) { if ($this->stack->getSize() < $this->limit) { $this->stack->insert($item); } else { throw new \OverflowException('stack is overflow'); } }
Cela implique la mise en œuvre précédente de la liste chaînée. Les étudiants qui ne comprennent pas les détails peuvent aller ici pour y jeter un œil. Certains étudiants ont demandé à nouveau : à quoi sert cette pile ? C’est une très bonne question. Examinons une exigence.
Veuillez implémenter une classe de vérification d'expression mathématique, entrez l'expression suivante et le résultat attendu est vrai.
"8 * (9 -2) + { (4 * 5) / ( 2 * 2) }
Ce qui suit est faux.
"5 * 8 * 9 / ( 3 * 2 ) )"
Ce qui suit est également faux.
"[{ (2 * 7) + ( 15 - 3) ]"
Pensez-y par vous-même, puis regardez la mise en œuvre.
class ExpressionChecker { //$expressions[] = "8 * (9 -2) + { (4 * 5) / ( 2 * 2) }"; //$expressions[] = "5 * 8 * 9 / ( 3 * 2 ) )"; //$expressions[] = "[{ (2 * 7) + ( 15 - 3) ]"; public function check(string $expression): bool { $stack = new \SplStack(); foreach (str_split($expression) as $item) { switch ($item) { case '{': case '[': case '(': $stack->push($item); break; case '}': case ']': case ')': if ($stack->isEmpty()) return false; $last = $stack->pop(); if ( $item == '{' && $last != '}' || $item == '(' && $last != ')' || $item == '[' && $last != ']' ) return false; break; } } if ($stack->isEmpty()) { return true; } return false; } }
Série spéciale
Adresse du répertoire de la série spéciale sur la structure de données de base PHP : https://github.com/... Utilise principalement la syntaxe PHP pour résumer les structures de données et les algorithmes de base. Il existe également des connaissances de base qui sont facilement négligées dans notre développement PHP quotidien et quelques suggestions pratiques sur la standardisation, le déploiement et l'optimisation dans le développement PHP moderne. Il existe également une étude approfondie des caractéristiques du langage Javascript.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Verrouillage et déverrouillage PHP Redis
Méthode PHP de fonctionnement de Beanstalkd et commentaires sur les paramètres
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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Sujets chauds

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

Le PHP reste important dans le développement Web moderne, en particulier dans la gestion de contenu et les plateformes de commerce électronique. 1) PHP a un écosystème riche et un fort soutien-cadre, tels que Laravel et Symfony. 2) L'optimisation des performances peut être obtenue via Opcache et Nginx. 3) PHP8.0 introduit le compilateur JIT pour améliorer les performances. 4) Les applications natives dans le cloud sont déployées via Docker et Kubernetes pour améliorer la flexibilité et l'évolutivité.

PHP convient au développement Web, en particulier dans le développement rapide et le traitement du contenu dynamique, mais n'est pas bon dans les applications de la science des données et de l'entreprise. Par rapport à Python, PHP présente plus d'avantages dans le développement Web, mais n'est pas aussi bon que Python dans le domaine de la science des données; Par rapport à Java, PHP fonctionne moins bien dans les applications au niveau de l'entreprise, mais est plus flexible dans le développement Web; Par rapport à JavaScript, PHP est plus concis dans le développement back-end, mais n'est pas aussi bon que JavaScript dans le développement frontal.

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

PHP est utilisé pour créer des sites Web dynamiques, et ses fonctions principales incluent: 1. Générer du contenu dynamique et générer des pages Web en temps réel en se connectant à la base de données; 2. Traiter l'interaction utilisateur et les soumissions de formulaires, vérifier les entrées et répondre aux opérations; 3. Gérer les sessions et l'authentification des utilisateurs pour offrir une expérience personnalisée; 4. Optimiser les performances et suivre les meilleures pratiques pour améliorer l'efficacité et la sécurité du site Web.

PHP et Python ont chacun leurs propres avantages et conviennent à différents scénarios. 1.PHP convient au développement Web et fournit des serveurs Web intégrés et des bibliothèques de fonctions riches. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et une bibliothèque standard puissante. Lors du choix, il doit être décidé en fonction des exigences du projet.

Les raisons pour lesquelles PHP est la pile technologique préférée pour de nombreux sites Web incluent sa facilité d'utilisation, son soutien communautaire solide et son utilisation généralisée. 1) Facile à apprendre et à utiliser, adapté aux débutants. 2) Avoir une énorme communauté de développeurs et des ressources riches. 3) Largement utilisé dans WordPress, Drupal et d'autres plateformes. 4) Intégrez étroitement aux serveurs Web pour simplifier le déploiement du développement.
