接着前面PHP数据结构来学习,今天写的是实现栈。

<?php
class stack //定义一个栈的类
{
private $size; //栈的空间大小
private $top; // 栈的指针
private $stack_arr; //栈的空间 public function __construct($size) //初始化一个空栈
{
$this->top=-1;
$this->size=$size;
$this->stack_arr=array();
}
public function push($data) //入栈操作,先判断栈是否已满
{
if($this->top==$this->size-1)
echo "The stack is full";
else
$this->stack_arr[++$this->top]=$data;
}
public function pop() //出栈,取栈顶元素,先判断是否为空栈
{
if($this->top==-1)
echo "The stack is empty";
else
return $this->stack_arr[$this->top--];
} public function getlength() //获取栈的大小
{
return $this->top+1;
} public function print_stack() //输出栈内元素
{
$tem=$this->top;
while($tem!=-1)
{
echo $this->stack_arr[$tem--];
}
}
} $stack=new stack(3);
$stack->push('a');
$stack->push('b');
$stack->push('c');
echo $stack->getlength();
echo "<br/>";
$stack->print_stack();
echo "<br/>";
echo $stack->pop();
echo "<br/>";
$stack->push('d');
$stack->print_stack(); ?>

  运行结果截图如下:

最新文章

  1. 【Django】--Model字段
  2. shell的一些应用场景
  3. C# 异常捕获机制(Try Catch Finally)
  4. 从零开始学Python04作业源码:模拟ATM电子银行(仅供参考)
  5. 企业邮箱在Android(安卓)系统手机上POP3/IMAP协议的设置方法
  6. Python 入門語法和類型(转载学习)
  7. Excel文件操作方式比较
  8. 【@ContextConfiguration】java世界的那些注解
  9. Unicode与 utf8的互相转换
  10. LSI SAS 2308配置操作
  11. java 判断对象是否是某个类的类型方法
  12. Android Intent实现页面跳转
  13. HDU 3699 A hard Aoshu Problem (暴力搜索)
  14. HDU1754 I hate it(线段树 单点修改)
  15. JavaScript大杂烩11 - 理解事件驱动
  16. Spring学习笔记(入门)
  17. jQuery中extend()实现原理
  18. mysql之 sysbench0.4.12数据库性能测试
  19. 【struts2】名为dispatcher的ResultType
  20. BS系统经验总结

热门文章

  1. Loadrunder脚本篇——webservice接口测试(二)
  2. debian内核代码执行流程(三)
  3. redis 数据导入导出,实例内db迁移
  4. Qt Ping
  5. Go Redis 开发
  6. MongoDB快速入门(五)- Where子句
  7. IOS 发布被拒 PLA 1.2问题 整个过程介绍 03 个人账户升级公司账户
  8. skynet中的各种锁
  9. setWindowFlags的使用
  10. 使用 Spring Boot 快速构建 Spring 框架应用