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 et les techniques de fonctionnement associées telles que l'empilement, le popping et le parcours de la pile sous forme d'exemples. Les amis qui en ont besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.
En utilisant la pensée orientée objet PHP, les attributs de la pile incluent le sommet, le nombre de stockage maximum et le conteneur de stockage (un tableau php est utilisé ici).
Le code est le suivant : plusieurs méthodes de poussée, d'affichage 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 'stack is full...'; return false; } $this->stack[++$this->top] = $ele;// 此处必须是++i,先计算再使用 } // 出栈,返回出栈元素 public function pop(){ if ($this->top == -1){ echo 'stack is empty...'; return false; } $ele = $this->stack[$this->top]; unset($this->stack[$this->top--]);// 此处必须是i--,先使用再计算(注意出栈和入栈的区别) return $ele; } // 遍历栈 public function show(){ if ($this->top == -1){ echo 'stack is empty...'; return false; } for($i=$this->top; $i>-1; $i--){ echo $this->stack[$i].'<br/>'; } } } $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 d'exécution :
4
3
2
1
1
Recommandations associées :
Comment PHP implémente la structure des données de pile et la correspondance entre parenthèses algorithme Explication détaillée des exemples de code
Code utilisant des tableaux pour implémenter des structures de données de pile en PHP
Exemple d'analyse push et pop de table linéaire en plastique_Tutoriel 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!