1:Stack特点

stack:栈,是一种特殊的数据结构,有着先入后出的特点(first in last out)。stack中栈底始终不变,只有一端能变化。栈顶在有数据push的时候增大,有数据pop的时候减小!相比于队列Queue而言,队列是先进先出(first in first out),队列有数据进来时,写指针增加,而有数据读出时,读指针增大,两个指针都是可变的!

2:应用场景

子程序的调用,递归程序的调用以及中缀表达式的实现

3:代码实现

下面更过上面的分析,基于数组来实现stack的pop,push的功能

//使用数组来构建stack
class stackInArray{ private Object[] array;//数组
private int stackBottom ;//stack的底部指向array的地步array[0]
private int stackTop ;//stack的底部指向array的地步array[0] public stackInArray(Object[] o ){
this.array = o;//指向构造的数组当作stakc的内存
this.stackBottom = ;
this.stackTop = ;
} //出栈
public Object stackPop() {
Object o = null;
if(stackTop == ) {
System.out.println("内存已空,无法出数据");
}
else {
stackTop--;
o = array[stackTop];
}
return o;
} //进栈
public void stackPush(Object o) {
if(stackTop == array.length) {
System.out.println("内存已满,无法存入");
return ;
}
else {
array[stackTop] = o;
stackTop++;
}
}
}

最新文章

  1. Netron开发快速上手(一):GraphControl,Shape,Connector和Connection
  2. LeetCode 168. Excel Sheet Column Title
  3. 解决webstorm乱码
  4. * 和 ** python
  5. Moqui学习Day1
  6. 二模08day2解题报告
  7. static关键字的作用
  8. [转] 解析Qt资源文件使用
  9. android AChartEngine图标引擎
  10. NOIP2003 传染病控制
  11. Ubuntu 开机启动是出现 grub rescue 解决办法
  12. 关于SpringMVC中text/plain的编码导致的乱码问题解决方法
  13. 如何获取Linux-gate.so.1动态库
  14. 关于html+ashx开发中几个问题的解决方法
  15. 20160217.CCPP体系详解(0027天)
  16. influence maximization
  17. Yii2常用ActiveRecord用法
  18. CF558E
  19. vue构造器的内容
  20. Nginx配置WebService、MySQL、SQL Server、ORACLE等代理

热门文章

  1. CentOS 6.8 32位 安装mysql8
  2. Oracle SQL存储过程结构、异常处理示例
  3. 八十九、SAP中ALV事件之三,查看事件自带说明
  4. 第九篇 AJAX
  5. gdb 常用选项
  6. Android 为控件添加点击涟漪效果
  7. POJ 1050:To the Max
  8. h5-360_introduce页面案例
  9. 创建了以个vagrant box centos php7 nginx swoole git
  10. 微服务和SpringCloud入门