萝卜建站下载购物链接

张小明 2026/1/10 16:38:32
萝卜建站下载,购物链接,校园二手网站开发的意义,wordpress的alt属性插件一、什么是栈#xff1f;栈#xff08;Stack#xff09;:是一种 后进先出#xff08;LIFO#xff0c;Last In First Out#xff09; 的数据结构。栈的核心特性只能在一端操作#xff08;称为 栈顶 top#xff09;基本操作#xff1a;入栈#xff08;push#xff09;…一、什么是栈栈Stack:是一种后进先出LIFOLast In First Out的数据结构。栈的核心特性只能在一端操作称为栈顶 top基本操作入栈push出栈pop查看栈顶peek二、栈的逻辑结构 vs 物理结构逻辑结构栈顶 ┌───┐ │ 3 │ ├───┤ │ 2 │ ├───┤ │ 1 │ └───┘ 栈底物理实现方式数组实现顺序栈链表实现链式栈三、手写一个顺序栈数组实现1. 栈的基本结构public class ArrayStack { private int[] data; // 存放元素 private int top; // 栈顶指针 private int capacity; public ArrayStack(int capacity) { this.capacity capacity; data new int[capacity]; top -1; // 栈空 } }2. 入栈pushpublic void push(int value) { if (top capacity - 1) { throw new RuntimeException(栈满无法入栈); } data[top] value; }关键点top capacity - 1→ 栈满先top再赋值3. 出栈poppublic int pop() { if (top -1) { throw new RuntimeException(栈空无法出栈); } return data[top--]; }关键点先取值再top--4. 查看栈顶peekpublic int peek() { if (top -1) { throw new RuntimeException(栈空); } return data[top]; }5. 测试代码public static void main(String[] args) { ArrayStack stack new ArrayStack(5); stack.push(1); stack.push(2); stack.push(3); System.out.println(stack.pop()); // 3 System.out.println(stack.peek()); // 2 }四、链式栈链表实现优势不需要扩容不受数组大小限制1. 节点定义class Node { int value; Node next; Node(int value) { this.value value; } }2. 栈结构public class LinkedStack { private Node top; public LinkedStack() { top null; } }3. 入栈头插法public void push(int value) { Node node new Node(value); node.next top; top node; }4. 出栈public int pop() { if (top null) { throw new RuntimeException(栈空); } int value top.value; top top.next; return value; }五、栈的经典应用 ①括号匹配问题描述输入 {[()]} 输出 true解题思路左括号 → 入栈右括号 → 弹栈匹配代码实现public static boolean isValid(String s) { DequeCharacter stack new ArrayDeque(); for (char c : s.toCharArray()) { if (c ( || c [ || c {) { stack.push(c); } else { if (stack.isEmpty()) return false; char top stack.pop(); if (c ) top ! () return false; if (c ] top ! [) return false; if (c } top ! {) return false; } } return stack.isEmpty(); }六、栈的经典应用 ②表达式求值逆波兰示例输入[2,1,,3,*] 输出9代码实现public static int evalRPN(String[] tokens) { DequeInteger stack new ArrayDeque(); for (String token : tokens) { if (-*/.contains(token)) { int b stack.pop(); int a stack.pop(); switch (token) { case : stack.push(a b); break; case -: stack.push(a - b); break; case *: stack.push(a * b); break; case /: stack.push(a / b); break; } } else { stack.push(Integer.parseInt(token)); } } return stack.pop(); }七、栈在系统层面的真实应用1. JVM 虚拟机栈每个线程一个栈栈帧包含局部变量表操作数栈返回地址递归本质 不断入栈2. 函数调用过程void a() { b(); } void b() { c(); }调用顺序a 入栈 b 入栈 c 入栈 c 出栈 b 出栈 a 出栈八、栈常见面试问题总结题型关键词括号匹配栈单调栈下一个更大元素表达式求值操作数栈DFS / 回溯系统栈中序 → 后序栈九、总结一句话栈的本质延迟处理 最近优先掌握栈你会突然发现递归不再神秘表达式计算有迹可循很多“看起来复杂”的问题本质只是一个栈
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

html背景颜色代码福建seo搜索引擎优化

文章目录 系列文章目录目的前言一、详细视频演示二、项目部分实现截图三、技术栈 后端框架springboot前端框架vue持久层框架MyBaitsPlus系统测试 四、代码参考 源码获取 目的 摘要:随着信息技术发展,传统医院挂号模式面临流程繁琐、信息不透明等问题。…

张小明 2026/1/9 16:01:19 网站建设

大气物流网站源码怎么开发一个网页

终极Go语言开发工具配置指南:5步提升编码效率 【免费下载链接】tools [mirror] Go Tools 项目地址: https://gitcode.com/gh_mirrors/too/tools Go语言服务器(gopls)是提升Go开发体验的关键工具,它为代码补全、定义跳转和重…

张小明 2026/1/9 16:46:50 网站建设

网站建设维护合同郑州网站加工

大家好,我是小悟。 微信支付服务商分账是微信支付推出的交易资金再分配工具,其核心逻辑是资金冻结与按规则分配。 具体流程如下: 资金冻结:用户支付后,微信扣除手续费(如1000元支付中扣除6元)&a…

张小明 2026/1/9 18:08:51 网站建设

小网站托管费用全球广告公司排名

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个性能对比工具,比较B树和二叉树在处理大规模数据时的效率。要求实现两种数据结构,生成随机测试数据,测量并可视化比较它们的插入、删除和…

张小明 2026/1/9 17:57:20 网站建设

淘宝客建站还能赚钱吗wordpress 下拉菜单设置

Codis如何实现5分钟部署千亿级分布式缓存架构? 【免费下载链接】codis 项目地址: https://gitcode.com/gh_mirrors/cod/codis 你是否曾面临Redis单机性能瓶颈,数据量激增时束手无策?分布式缓存架构的复杂性是否让你望而却步&#xff…

张小明 2026/1/9 18:21:02 网站建设

浙江华企 做网站怎么样wordpress源代码如何在本地编辑

数据库文档自动化终极指南:5分钟一键生成专业数据库文档 【免费下载链接】database-export 基于SpringBoot的开源数据库表结构导出word文档工具 项目地址: https://gitcode.com/gh_mirrors/da/database-export 在软件开发的生命周期中,数据库文档…

张小明 2026/1/9 20:01:25 网站建设