PHP 常用例子

堆栈是一种线性动态数据结构,遵循后进先出(LIFO)原则。在堆栈中,新元素的添加和元素的删除发生在同一端,这意味着堆栈中最后添加的元素将最先从堆栈中删除。

功能堆栈

  • 它是一个动态数据结构。
  • 它具有动态大小。
  • 它使用动态内存分配。

堆栈的操作

  • isEmpty():检查堆栈是否为空。
  • size():返回堆栈的大小。
  • topElement():返回堆栈的顶部元素。
  • Push(x):在堆栈顶部添加一个新元素"x"。因此,堆栈的大小增加 1。
    PHP中的堆栈
  • pop():删除栈顶元素。因此,堆栈的大小减少 1。
    PHP中的堆栈

堆栈的实现

<?php
class CreateStack {
  public $top;
  public $stack = array();

  function __construct() {
    $this->top = -1;
  }

  //创建一个函数来检查
  //栈是否为空
  public function isEmpty() {
    if($this->top == -1) {
      echo "Stack is empty. \n";
    } else {
      echo "堆栈不为空. \n";
    }
  }

  //创建一个函数来返回堆栈的大小
  public function size() { 
     return $this->top+1;
  }

  //创建一个函数来添加新元素
  public function push($x) {
    $this->stack[++$this->top] = $x;
    echo $x." 被添加到堆栈中. \n"; 
  }

  //创建删除顶部元素的函数
  public function pop() {
    if($this->top < 0){
      echo "Stack is empty. \n";
    } else {
      $x = $this->stack[$this->top--];
      echo $x." 从堆栈中删除. \n";
    }    
  }

  public function topElement() {
    if($this->top < 0) {
      echo "栈为空. \n";
    } else {
      return $this->stack[$this->top];
    }
  }
}

//测试代码
$MyStack = new CreateStack();
$MyStack->push(10);
$MyStack->push(20);
$MyStack->push(30);
$MyStack->push(40);

$MyStack->pop();
$MyStack->isEmpty();
?> 

上面的代码将给出以下输出:

10 被添加到堆栈中.
20 被添加到堆栈中.
30 被添加到堆栈中.
40 被添加到堆栈中.
40 从堆栈中删除.
堆栈不为空.