Maison >développement back-end >tutoriel php >Exemple de structure de données de pile implémentée en PHP [Push into stack, pop out of stack, traverse stack]_php skills

Exemple de structure de données de pile implémentée en PHP [Push into stack, pop out of stack, traverse stack]_php skills

韦小宝
韦小宝original
2017-12-15 10:20:131627parcourir

Cet article présente principalement la structure de données de pile implémentée par PHP, et analyse la pile de définition php push, pop, et pour la traversée de la pile et d'autres compétences opérationnelles connexes, amis dans Vous pouvez vous référer à cet article. Cet article décrit la structure de données de pile implémentée par PHP avec des exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants : En utilisant l'idée

orientée objet php

, les propriétés de la pile incluent le sommet, le nombre de stockage maximum et le conteneur de stockage ( ici en utilisant le tableau php ). Le code est le suivant : plusieurs méthodes de poussée, d'éclatement et de parcours de la pile sont implémentées :


<?php
class Stack{
  const MAXSIZE = 4;// 栈最大容量
  private $top = -1;
  private $stack = array();// 利用数组存储数据
  public function construct(){
    $this->stack = array();
  }
  // 入栈
  public function push($ele){
    if ($this->top >= self::MAXSIZE-1){
      echo &#39;stack is full...&#39;;
      return false;
    }
    $this->stack[++$this->top] = $ele;// 此处必须是++i,先计算再使用
  }
  // 出栈,返回出栈元素
  public function pop(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    $ele = $this->stack[$this->top];
    unset($this->stack[$this->top--]);// 此处必须是i--,先使用再计算(注意出栈和入栈的区别)
    return $ele;
  }
  // 遍历栈
  public function show(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    for($i=$this->top; $i>-1; $i--){
      echo $this->stack[$i].&#39;<br/>&#39;;
    }
  }
}
$stack = new Stack;
$stack->push(1);
$stack->push(2);
$stack->push(3);
$stack->push(4);
//print_r($stack);
$stack->show();
$a = $stack->pop();
$a = $stack->pop();
$a = $stack->pop();
$stack->show();


Résultats de l'exécution :

Ce qui précède représente tout le contenu de cet article, j'espère qu'il pourra être utile à tout le monde ! !
4
3
2
1
1

Recommandations associées :

Exemple d'analyse du téléchargement de fichiers uniques et multi-fichiers PHP

Explication détaillée d'exemples de classes et d'objets en php

Solutions aux vignettes de mauvaise qualité générées par 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