<span><span><?php </span></span><span><span>class ReadingList </span></span><span><span>{ </span></span><span> <span>protected $stack; </span></span><span> <span>protected $limit; </span></span><span> </span><span> <span>public function __construct($limit = 10) { </span></span><span> <span>// initialize the stack </span></span><span> <span>$this->stack = array(); </span></span><span> <span>// stack can only contain this many items </span></span><span> <span>$this->limit = $limit; </span></span><span> <span>} </span></span><span> </span><span> <span>public function push($item) { </span></span><span> <span>// trap for stack overflow </span></span><span> <span>if (count($this->stack) < $this->limit) { </span></span><span> <span>// prepend item to the start of the array </span></span><span> <span>array_unshift($this->stack, $item); </span></span><span> <span>} else { </span></span><span> <span>throw new RunTimeException('Stack is full!'); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>public function pop() { </span></span><span> <span>if ($this->isEmpty()) { </span></span><span> <span>// trap for stack underflow </span></span><span> <span>throw new RunTimeException('Stack is empty!'); </span></span><span> <span>} else { </span></span><span> <span>// pop item from the start of the array </span></span><span> <span>return array_shift($this->stack); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>public function top() { </span></span><span> <span>return current($this->stack); </span></span><span> <span>} </span></span><span> </span><span> <span>public function isEmpty() { </span></span><span> <span>return empty($this->stack); </span></span><span> <span>} </span></span><span><span>}</span></span>
<span><span><?php </span></span><span><span>$myBooks = new ReadingList(); </span></span><span> </span><span><span>$myBooks->push('A Dream of Spring'); </span></span><span><span>$myBooks->push('The Winds of Winter'); </span></span><span><span>$myBooks->push('A Dance with Dragons'); </span></span><span><span>$myBooks->push('A Feast for Crows'); </span></span><span><span>$myBooks->push('A Storm of Swords'); </span></span><span><span>$myBooks->push('A Clash of Kings'); </span></span><span><span>$myBooks->push('A Game of Thrones');</span></span>
<span><span><?php </span></span><span><span>echo $myBooks->pop(); // outputs 'A Game of Thrones' </span></span><span><span>echo $myBooks->pop(); // outputs 'A Clash of Kings' </span></span><span><span>echo $myBooks->pop(); // outputs 'A Storm of Swords'</span></span>
<span><span><?php </span></span><span><span>echo $myBooks->top(); // outputs 'A Feast for Crows'</span></span>
<span><span><?php </span></span><span><span>echo $myBooks->pop(); // outputs 'A Feast for Crows'</span></span>
<span><span><?php </span></span><span><span>$myBooks->push('The Armageddon Rag'); </span></span><span><span>echo $myBooks->pop(); // outputs 'The Armageddon Rag'</span></span>
PHP Fatal error: Uncaught exception 'RuntimeException' with message 'Stack is empty!' in /home/ignatius/Data Structures/code/array_stack.php:33 Stack trace: #0 /home/ignatius/Data Structures/code/example.php(31): ReadingList->pop() #1 /home/ignatius/Data Structures/code/array_stack.php(54): include('/home/ignatius/...') #2 {main} thrown in /home/ignatius/Data Structures/code/array_stack.php on line 33
<span><span><?php </span></span><span><span>class ReadingList extends SplStack </span></span><span><span>{ </span></span><span><span>}</span></span>
<span><span><?php </span></span><span><span>class ReadingList </span></span><span><span>{ </span></span><span> <span>protected $stack; </span></span><span> <span>protected $limit; </span></span><span> </span><span> <span>public function __construct($limit = 10) { </span></span><span> <span>// initialize the stack </span></span><span> <span>$this->stack = array(); </span></span><span> <span>// stack can only contain this many items </span></span><span> <span>$this->limit = $limit; </span></span><span> <span>} </span></span><span> </span><span> <span>public function push($item) { </span></span><span> <span>// trap for stack overflow </span></span><span> <span>if (count($this->stack) < $this->limit) { </span></span><span> <span>// prepend item to the start of the array </span></span><span> <span>array_unshift($this->stack, $item); </span></span><span> <span>} else { </span></span><span> <span>throw new RunTimeException('Stack is full!'); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>public function pop() { </span></span><span> <span>if ($this->isEmpty()) { </span></span><span> <span>// trap for stack underflow </span></span><span> <span>throw new RunTimeException('Stack is empty!'); </span></span><span> <span>} else { </span></span><span> <span>// pop item from the start of the array </span></span><span> <span>return array_shift($this->stack); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>public function top() { </span></span><span> <span>return current($this->stack); </span></span><span> <span>} </span></span><span> </span><span> <span>public function isEmpty() { </span></span><span> <span>return empty($this->stack); </span></span><span> <span>} </span></span><span><span>}</span></span>
<span><span><?php </span></span><span><span>$myBooks = new ReadingList(); </span></span><span> </span><span><span>$myBooks->push('A Dream of Spring'); </span></span><span><span>$myBooks->push('The Winds of Winter'); </span></span><span><span>$myBooks->push('A Dance with Dragons'); </span></span><span><span>$myBooks->push('A Feast for Crows'); </span></span><span><span>$myBooks->push('A Storm of Swords'); </span></span><span><span>$myBooks->push('A Clash of Kings'); </span></span><span><span>$myBooks->push('A Game of Thrones');</span></span>
<span><span><?php </span></span><span><span>class ReadingList </span></span><span><span>{ </span></span><span> <span>protected $stack; </span></span><span> <span>protected $limit; </span></span><span> </span><span> <span>public function __construct($limit = 10) { </span></span><span> <span>// initialize the stack </span></span><span> <span>$this->stack = array(); </span></span><span> <span>// stack can only contain this many items </span></span><span> <span>$this->limit = $limit; </span></span><span> <span>} </span></span><span> </span><span> <span>public function push($item) { </span></span><span> <span>// trap for stack overflow </span></span><span> <span>if (count($this->stack) < $this->limit) { </span></span><span> <span>// prepend item to the start of the array </span></span><span> <span>array_unshift($this->stack, $item); </span></span><span> <span>} else { </span></span><span> <span>throw new RunTimeException('Stack is full!'); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>public function pop() { </span></span><span> <span>if ($this->isEmpty()) { </span></span><span> <span>// trap for stack underflow </span></span><span> <span>throw new RunTimeException('Stack is empty!'); </span></span><span> <span>} else { </span></span><span> <span>// pop item from the start of the array </span></span><span> <span>return array_shift($this->stack); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>public function top() { </span></span><span> <span>return current($this->stack); </span></span><span> <span>} </span></span><span> </span><span> <span>public function isEmpty() { </span></span><span> <span>return empty($this->stack); </span></span><span> <span>} </span></span><span><span>}</span></span>
<span><span><?php </span></span><span><span>$myBooks = new ReadingList(); </span></span><span> </span><span><span>$myBooks->push('A Dream of Spring'); </span></span><span><span>$myBooks->push('The Winds of Winter'); </span></span><span><span>$myBooks->push('A Dance with Dragons'); </span></span><span><span>$myBooks->push('A Feast for Crows'); </span></span><span><span>$myBooks->push('A Storm of Swords'); </span></span><span><span>$myBooks->push('A Clash of Kings'); </span></span><span><span>$myBooks->push('A Game of Thrones');</span></span>
<span><span><?php </span></span><span><span>echo $myBooks->pop(); // outputs 'A Game of Thrones' </span></span><span><span>echo $myBooks->pop(); // outputs 'A Clash of Kings' </span></span><span><span>echo $myBooks->pop(); // outputs 'A Storm of Swords'</span></span>
<span><span><?php </span></span><span><span>echo $myBooks->top(); // outputs 'A Feast for Crows'</span></span>
PHP prend en charge plusieurs types de structures de données, y compris des tableaux, des objets et des ressources. Les tableaux sont les structures de données les plus courantes et polyvalentes en PHP. Ils peuvent contenir tout type de données, y compris d'autres tableaux, et peuvent être indexés ou associatifs. Les objets en PHP sont des cas de classes, qui peuvent avoir des propriétés et des méthodes. Les ressources sont des variables spéciales qui détiennent des références aux ressources externes, telles que les connexions de base de données.
Une pile est un type de structure de données qui suit le LIFO ( Principe du dernier dans, premier sorti). Dans PHP, vous pouvez utiliser la classe SplStack pour implémenter une pile. Vous pouvez pousser des éléments sur la pile à l'aide de la méthode push () et des éléments POP de la pile à l'aide de la méthode pop ().
Les tableaux et les objets en PHP sont les deux types de structures de données, mais ils ont des différences clés. Les tableaux sont des listes simples de valeurs, tandis que les objets sont des instances de classes et peuvent avoir des propriétés et des méthodes. Les tableaux peuvent être indexés ou associatifs, tandis que les objets utilisent toujours des touches de chaîne. Les tableaux sont plus polyvalents et plus faciles à utiliser, tandis que les objets fournissent plus de structure et d'encapsulation.
L'utilisation de la bonne structure de données peut améliorer considérablement les performances de votre code PHP. Par exemple, si vous devez stocker un grand nombre d'éléments et rechercher fréquemment des éléments spécifiques, l'utilisation d'une table de hachage ou d'un ensemble peut être beaucoup plus rapide que d'utiliser un tableau. De même, si vous avez besoin d'ajouter et de supprimer fréquemment des éléments aux deux extrémités, l'utilisation d'un désactive peut être plus efficace que d'utiliser un tableau.
La classe SpldoublyLinkedLedList Dans PHP est une structure de données qui implémente une liste doublement liée. Il vous permet d'ajouter, de supprimer et d'accès aux éléments aux deux extrémités de la liste en temps constant. Il fournit également des méthodes d'itération sur les éléments de la liste et pour tri les éléments.
Une file d'attente est un type de structure de données qui suit Le principe FIFO (premier dans, premier sorti). Dans PHP, vous pouvez utiliser la classe Splqueue pour implémenter une file d'attente. Vous pouvez enterrer des éléments sur la file d'attente à l'aide de la méthode ENQUEUe () et les éléments de désactivation de la file d'attente à l'aide de la méthode Dequeue ().
Une pile et une file d'attente sont les deux types de structures de données, mais elles ont une différence clé dans la façon dont les éléments sont ajoutés et supprimés. Une pile suit le principe LIFO (dernier dans, premier sorti), ce qui signifie que le dernier élément ajouté est le premier à être supprimé. Une file d'attente, en revanche, suit le principe FIFO (premier dans, premier sorti), ce qui signifie que le premier élément ajouté est le premier à être supprimé.
La classe SPLHEAP en PHP est une structure de données qui implémente un tas. Un tas est un type d'arbre binaire où chaque nœud parent est inférieur ou égal à ses nœuds enfants. Vous pouvez utiliser la classe SPLHEAP pour créer un mine-heap ou un max-heap, et pour ajouter, supprimer et accéder aux éléments dans le tas.
L'utilisation de structures de données en PHP peut fournir plusieurs avantages. Ils peuvent vous aider à organiser vos données d'une manière plus efficace et logique, ce qui peut rendre votre code plus facile à comprendre et à maintenir. Ils peuvent également améliorer les performances de votre code, en particulier lorsqu'ils traitent de grandes quantités de données ou d'opérations complexes.
Un arbre binaire est un type de la structure des données où chaque nœud a au plus deux enfants, appelés l'enfant gauche et l'enfant droit. Dans PHP, vous pouvez implémenter un arbre binaire en utilisant une classe qui a des propriétés pour la valeur du nœud et des enfants gauche et droit. Vous pouvez ensuite utiliser des méthodes pour ajouter, supprimer et rechercher des nœuds dans l'arborescence.
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!