zoukankan      html  css  js  c++  java
  • php模拟顺序栈基本操作

    php模拟顺序栈基本操作

    一、总结

    写函数什么永远记住边界情况:比如 echo "栈已满!<br/>" ;  栈已空这种,那就能多考虑几种情况,代码就很正宗了

    1、对象生成和java一样,都是new关键字

    2、 属性方法都是 ->  访问

    3、对象的操作只是比java中少了变量类型而已,php不需要变量类型

    二、代码

     1 /**
     2  * Class Stack
     3  * 用PHP模拟顺序栈的基本操作
     4  */
     5 class Stack{
     6     //用默认值直接初始化栈了,也可用构造方法初始化栈
     7     private $top = -1;
     8     private $maxSize = 5;
     9     private $stack = array();
    10 
    11     //入栈
    12     public function push($elem){
    13         if($this->top >= $this->maxSize-1){
    14             echo "栈已满!<br/>";
    15             return;
    16         }
    17         $this->top++;
    18         $this->stack[$this->top] = $elem;
    19     }
    20     //出栈
    21     public function pop(){
    22         if($this->top == -1){
    23             echo "栈是空的!";
    24             return ;
    25         }
    26         $elem = $this->stack[$this->top];
    27         unset($this->stack[$this->top]);
    28         $this->top--;
    29         return $elem;
    30     }
    31     //打印栈
    32     public function show(){
    33         for($i=$this->top;$i>=0;$i--){
    34             echo $this->stack[$i]." ";
    35         }
    36         echo "<br/>";
    37     }
    38 }
    39 
    40 $stack = new Stack();
    41 $stack->push(3);
    42 $stack->push(5);
    43 $stack->push(8);
    44 $stack->push(7);
    45 $stack->push(9);
    46 $stack->push(2);
    47 $stack->show();
    48 $stack->pop();
    49 $stack->pop();
    50 $stack->pop();
    51 $stack->show();
  • 相关阅读:
    MYSQL关于数据库的操作命令
    理解js中的原型和原型链
    float引起的高度塌陷问题
    使用webpack2.0 搭建前端项目
    jquery插件开发总结
    js中的OOP编程
    关于gulp的基本使用
    关于requireJs的学习总结
    vuex的学习总结
    事件中的target与currentTarget的区别
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9027174.html
Copyright © 2011-2022 走看看