萝卜建站下载购物链接

张小明 2026/1/1 1:23:03
萝卜建站下载,购物链接,校园二手网站开发的意义,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进行投诉反馈,一经查实,立即删除!

利用阿里云虚拟主机做网站论坛网站平台建设方案

在太空探索技术日新月异的今天,掌握专业的轨道计算工具已成为航天工程师和天文爱好者的必备技能。poliastro作为Python生态中的太空仿真利器,以其独特的技术架构和强大的应用能力,正在重新定义航天分析的工作方式。你知道吗?这款工…

张小明 2025/12/31 4:28:49 网站建设

涟源市建设局网站百度手机端推广

5个简单技巧让你的终端颜值飙升:告别单调的黑白界面! 【免费下载链接】cmder 项目地址: https://gitcode.com/gh_mirrors/cmd/cmder 还在忍受Windows默认的黑白命令行界面吗?想让你的终端工具既实用又养眼吗?终端美化已经…

张小明 2025/12/30 23:49:14 网站建设

邢台度网网站建设品牌网站推广方案

学术研究好工具:anything-llm镜像处理论文集 在人工智能加速渗透科研领域的今天,一个现实问题正困扰着越来越多的研究者:每年顶会论文动辄上千篇,PDF 文件堆满硬盘,可真正需要回顾某项技术细节时,却总要花上…

张小明 2025/12/31 6:03:55 网站建设

给非法公司做网站维护深圳今天发生的重大新闻

你是否曾遇到过想要保存一篇深度好文却只能分段截图的尴尬?当需要完整保存在线报告或设计作品时,传统截图工具带来的碎片化体验正在悄悄吞噬你的工作效率。今天我要分享的Full Page Screen Capture扩展,将彻底改变你与网页内容交互的方式。 【…

张小明 2025/12/30 20:18:54 网站建设

买微单的网站建设浙江台州网络设计网站

Apache PDFBox 新手入门指南:10个常见问题及解决方案 【免费下载链接】pdfbox Apache PDFBox: 是一个用于处理PDF文档的开源Java库。它允许开发者读取、写入、操作和打印PDF文档。适合Java开发者,特别是那些需要处理PDF文档的业务应用开发者。特点包括支…

张小明 2025/12/30 22:31:00 网站建设

用爱站工具包如何做网站地图wordpress 菜单 双语

Zotero GPT插件完全指南:AI驱动的学术研究助手 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt Zotero GPT插件是一款革命性的AI工具,它将先进的GPT模型与Zotero文献管理软件完美结合。这…

张小明 2025/12/31 1:52:30 网站建设