栈
介绍
1.先入后出的有序列表
2.限制线性表中元素的插入和删除只能在同一端;栈顶:允许插入、删除,栈底:固定的一端
3.栈顶:元素最后放入,最先删除;栈底:元素最先放入,最后删除
4.Stack类已过时,用LinkedList类实现栈
应用
1.子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以回到原来的程序中
2.递归调用:和子程序的调用类似,除了储存下一个指令的地址外,也将参数、区域变量等数据存入堆栈中
3.表达式的转换[中缀表达式转后缀表达式]
4.二叉树的遍历
5.图形的深度优先(depth一first)搜索法
数组模拟栈
1.定义一个 top 来表示栈顶,初始化 为 -1
2.入栈: top++;stack[top] = data;
3.出栈: int value = stack[top];top--; return value;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战