用数组来实现Stack
2024-09-07 05:41:53
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++;
}
}
}
最新文章
- Netron开发快速上手(一):GraphControl,Shape,Connector和Connection
- LeetCode 168. Excel Sheet Column Title
- 解决webstorm乱码
- * 和 ** python
- Moqui学习Day1
- 二模08day2解题报告
- static关键字的作用
- [转] 解析Qt资源文件使用
- android AChartEngine图标引擎
- NOIP2003 传染病控制
- Ubuntu 开机启动是出现 grub rescue 解决办法
- 关于SpringMVC中text/plain的编码导致的乱码问题解决方法
- 如何获取Linux-gate.so.1动态库
- 关于html+ashx开发中几个问题的解决方法
- 20160217.CCPP体系详解(0027天)
- influence maximization
- Yii2常用ActiveRecord用法
- CF558E
- vue构造器的内容
- Nginx配置WebService、MySQL、SQL Server、ORACLE等代理