数据结构之栈
栈:栈是限定仅在表尾进行插入和删除操作的线性表。“栈”者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法
实现一个简单的栈:1,先定义栈的容量
2,定义栈顶,为-1
3,定义一个存储数据的数组stackArray[ ]
代码:
package Stack; public class StackDemo { public static void main(String[] args) { Stack stack = new Stack(5); stack.push(1); stack.push(2); stack.push(3); stack.push(4); stack.push(5); stack.list(); } } class Stack{ int stackArray[]; int maxSize;//栈容量 int top = -1;//栈顶 public Stack(int maxSize) { this.maxSize = maxSize; stackArray = new int[maxSize]; } //栈满 public boolean isFull(){ return top == maxSize - 1; }
//栈空 public boolean isEmpty(){ return top == -1; } //压栈 public void push(int value){ if (isFull()){ System.out.println("栈满"); return; }
//栈顶指针上移 top++; stackArray[top] = value; } //出栈 public int pop(){ if (isFull()){ throw new RuntimeException("栈空"); }
//临时变量保存栈顶元素 int value = stackArray[top];
//指针下移 top--; return value; } //遍历栈,必须从栈顶开始显示数据 public void list(){ if (isEmpty()){ System.out.println("栈空"); return; } for (int i = top ; i >= 0 ; i--){ System.out.printf("stack[%d]=%d\n",i,stackArray[i]); } } }
生命不止,折腾不息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端