Maison développement back-end tutoriel php Apprenez à implémenter la structure de pile en utilisant PHP

Apprenez à implémenter la structure de pile en utilisant PHP

Oct 09, 2020 pm 03:12 PM

Apprenez à implémenter la structure de pile en utilisant PHP

Recommandé : "Tutoriel vidéo PHP"

1. Définition et connaissances de la pile

1. Définition : La pile, également connue sous le nom de pile ou pile, est un type de données abstraites en série spécial en informatique. La particularité est qu'elle n'est autorisée qu'à une extrémité de la liste chaînée ou du tableau (le haut). du pointeur de pile, également connu sous le nom de "top") ajoute un push de données (push) et un pop de données de sortie (pile pop). De plus, la pile peut également être implémentée à l'aide de tableaux unidimensionnels et de listes chaînées.

2. Caractéristiques de la pile :

a. Premier entré, dernier sorti (dernier entré, premier sorti), c'est-à-dire qu'on ne peut que pousser (pousser) pour ajouter des données en haut. de la pile, et nous ne pouvons que Pop supprimer les données en haut de la pile

b. À l'exception du haut (haut de la pile) et de la base (bas de la pile), tous les autres éléments de la pile ont. un prédécesseur et un successeur

2. PHP implémente simplement la structure de pile

<?php
class HeapStack{
    private $stackArr = array();
    private $stackMaxTop = 10; // 栈顶最大值(用于控制栈长度,是否栈满)
    private $top = -1; // 栈顶(会随着push或pop的操作而变化)
    private $out;

    /**
     * 入栈
     *
     */
    public function pushValue($value=&#39;&#39;)
    {
        if(empty($value))
            return &#39;压入的值不能为空&#39;;

        if($this->top == $this->stackMaxTop)
            return &#39;栈内已满&#39;;
        array_push($this->stackArr, $value);
        ++$this->top;
        return &#39;入栈成功,栈顶值:&#39;.$this->top;
    }

    /**
     * 出栈
     *
     */
    public function popValue()
    {
        if($this->top == -1)
            return &#39;栈内没有数据&#39;;

        $this->out = array_pop($this->stackArr);
        --$this->top;
        return &#39;出栈成功,当前栈顶值:&#39;.$this->top.&#39;出栈值:&#39;.$this->out;
    }

    /**
     * 获取栈内信息
     */
    public function getSatck()
    {
        return $this->stackArr;
    }

    public function __destruct()
    {
        echo &#39;over &#39;;
    }
}

$stack = new HeapStack();
echo $stack->pushValue(&#39;stackValue&#39;)."\n";
echo $stack->pushValue(&#39;stackValue2&#39;)."\n";
var_dump($stack->getSatck());
echo $stack->popValue()."\n";
var_dump($stack->getSatck());
Copier après la connexion
.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quelle est la différence entre tas et pile Quelle est la différence entre tas et pile Nov 22, 2022 pm 04:12 PM

Différences : 1. L'espace du tas est généralement alloué et libéré par le programmeur tandis que l'espace de la pile est automatiquement alloué et libéré par le système d'exploitation ; 2. Le tas est stocké dans le cache de deuxième niveau et son cycle de vie est déterminé par l'algorithme de récupération de place de la machine virtuelle, tandis que la pile utilise le cache de premier niveau, qui se trouve généralement dans l'espace de stockage lorsqu'elle est appelée. , et est libéré immédiatement après la fin de l'appel. 3. Les structures de données sont différentes. Le tas peut être considéré comme un arbre, tandis que la pile est une structure de données premier entré, dernier sorti.

La différence entre tas et pile La différence entre tas et pile Jul 18, 2023 am 10:17 AM

La différence entre le tas et la pile : 1. La méthode d'allocation de mémoire est différente. Le tas est alloué et libéré manuellement par le programmeur, tandis que la pile est automatiquement allouée et libérée par le système d'exploitation. 2. La taille est différente. la pile est fixe, tandis que la pile est automatiquement allouée et libérée par le système d'exploitation. La taille de augmente de manière dynamique 3. Dans le tas, l'accès aux données se fait via des pointeurs, tandis que dans la pile, les données. l'accès se fait via les noms de variables ; 4. Cycle de vie des données , Dans le tas, le cycle de vie des données peut être très long, tandis que dans la pile, le cycle de vie des variables est déterminé par la portée dans laquelle elles se trouvent.

Quelles sont les différences entre le tas Java et la pile Quelles sont les différences entre le tas Java et la pile Dec 25, 2023 pm 05:29 PM

La différence entre le tas et la pile Java : 1. Allocation et gestion de la mémoire ; 2. Contenu du stockage 3. Exécution des threads et cycle de vie ; 4. Impact sur les performances. Introduction détaillée : 1. Allocation et gestion de la mémoire. Le tas Java est une zone de mémoire allouée dynamiquement, principalement utilisée pour stocker les instances d'objets. En Java, les objets sont alloués via la mémoire tas. Lorsqu'un objet est créé, la machine virtuelle Java alloue la mémoire correspondante. espace sur le système et effectuer automatiquement le garbage collection et la gestion de la mémoire. La taille du tas peut être ajustée dynamiquement au moment de l'exécution, configurée via les paramètres JVM, etc.

Tas, pile, dictionnaire, arbre rouge-noir et autres structures de données en langage Go Tas, pile, dictionnaire, arbre rouge-noir et autres structures de données en langage Go Jun 03, 2023 pm 03:10 PM

Avec le développement de l’informatique, la structure des données est devenue un sujet important. Dans le développement de logiciels, les structures de données sont très importantes. Elles peuvent améliorer l’efficacité et la lisibilité du programme et peuvent également aider à résoudre divers problèmes. Dans le langage Go, les structures de données telles que le tas, la pile, le dictionnaire et l'arbre rouge-noir sont également très importantes. Cet article présentera ces structures de données et leur implémentation en langage Go. Heap est une structure de données classique utilisée pour résoudre les problèmes de file d’attente prioritaire. Une file d'attente prioritaire fait référence à une file d'attente qui, lors de la suppression d'éléments, est

Structures de données PHP SPL : injectez de la vitesse et de la flexibilité dans vos projets Structures de données PHP SPL : injectez de la vitesse et de la flexibilité dans vos projets Feb 19, 2024 pm 11:00 PM

Présentation de la bibliothèque de structures de données PHPSPL La bibliothèque de structures de données PHPSPL (Standard PHP Library) contient un ensemble de classes et d'interfaces pour stocker et manipuler diverses structures de données. Ces structures de données comprennent des tableaux, des listes chaînées, des piles, des files d'attente et des ensembles, chacun fournissant un ensemble spécifique de méthodes et de propriétés pour manipuler les données. Tableaux En PHP, un tableau est une collection ordonnée qui stocke une séquence d'éléments. La classe de tableau SPL fournit des fonctions améliorées pour les tableaux PHP natifs, notamment le tri, le filtrage et le mappage. Voici un exemple d'utilisation de la classe array SPL : useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

Les concepts et applications du tas et de la pile en PHP Les concepts et applications du tas et de la pile en PHP Jun 22, 2023 am 10:38 AM

En tant que langage de programmation très populaire, PHP joue un rôle très important dans le traitement et l'utilisation des structures de données. En PHP, le tas et la pile sont deux structures de données très importantes et elles ont une valeur d'application importante dans la conception et la mise en œuvre de programmes. Cet article présentera le tas et la pile en PHP sous les aspects conceptuels et applicatifs. 1. Les concepts de tas et de pile Heap Heap est une structure de données, qui est une structure arborescente spéciale. En PHP, un tas est une structure de données de type graphique composée de nœuds et d'arêtes. Chaque nœud du tas a une valeur, et chaque

Structures de données PHP SPL : l'arme ultime pour la gestion des données Structures de données PHP SPL : l'arme ultime pour la gestion des données Feb 20, 2024 am 11:30 AM

Introduction à la bibliothèque de structures de données PHPSPL La bibliothèque standard PHP (SPL) contient un riche ensemble de types de données intégrés appelés structures de données. Ces structures permettent une gestion efficace et flexible de collections de données complexes. L'utilisation des structures de données SPL peut apporter les avantages suivants à votre application : Optimisation des performances : les structures de données SPL sont spécifiquement conçues pour fournir des performances optimales dans diverses situations. Maintenabilité améliorée : ces structures simplifient la gestion de types de données complexes, améliorant ainsi la lisibilité et la maintenabilité du code. Standardisation : les structures de données SPL sont conformes aux spécifications de programmation PHP, garantissant la cohérence et l'interopérabilité entre les applications. Types de structure de données SPL SPL propose plusieurs types de structure de données, chacun avec ses propres caractéristiques et utilisations : Pile (St

La merveilleuse utilisation de la récursivité dans les structures de données C++ : implémentation de piles et d'arbres La merveilleuse utilisation de la récursivité dans les structures de données C++ : implémentation de piles et d'arbres May 04, 2024 pm 01:54 PM

Application de la récursion dans les structures de données C++ : Pile : La pile est implémentée de manière récursive via la structure dernier entré, premier sorti (LIFO). Arbre : L'arbre est implémenté de manière récursive via une structure hiérarchique, prenant en charge des opérations telles que l'insertion et le calcul de profondeur. La récursion fournit une solution concise et efficace pour traiter les structures imbriquées, rendant la mise en œuvre des structures de données plus intuitive et plus facile à maintenir.

See all articles