网站开发需求收集北京青鸟培训机构哪家是正规的

张小明 2026/1/11 18:28:58
网站开发需求收集,北京青鸟培训机构哪家是正规的,品牌营销策划,外贸公司推广平台在 Java 中#xff0c;利用两个队列实现栈的核心思路是通过队列的“先进先出”特性模拟栈的“后进先出”特性#xff1a;始终让一个队列#xff08;记为 queue1#xff09;存储栈的所有元素#xff0c;另一个队列#xff08;记为 queue2#xff09;作为临时中转。以下是…在 Java 中利用两个队列实现栈的核心思路是通过队列的“先进先出”特性模拟栈的“后进先出”特性始终让一个队列记为queue1存储栈的所有元素另一个队列记为queue2作为临时中转。以下是完整的实现思路和代码示例核心原理入栈push直接将元素添加到主队列queue1。出栈pop将queue1中除最后一个元素外的所有元素依次转移到queue2弹出queue1中剩余的最后一个元素即栈顶元素然后交换queue1和queue2的角色让queue2变为空的中转队列。获取栈顶peek逻辑与pop类似但转移后不弹出最后一个元素而是记录其值后再将其转移到queue2最后交换队列角色。判空isEmpty直接判断主队列queue1是否为空。完整代码实现import java.util.LinkedList; import java.util.Queue; /** * 用两个队列实现栈 */ public class StackByTwoQueues { // 主队列存储栈的所有元素 private QueueInteger queue1; // 临时中转队列 private QueueInteger queue2; // 初始化 public StackByTwoQueues() { // 推荐使用LinkedList作为Queue的实现LinkedList实现了Deque支持队列操作 queue1 new LinkedList(); queue2 new LinkedList(); } /** * 入栈直接添加到主队列 * param x 要入栈的元素 */ public void push(int x) { queue1.offer(x); } /** * 出栈弹出栈顶元素最后入队的元素 * return 栈顶元素 * throws RuntimeException 栈为空时抛出异常 */ public int pop() { if (isEmpty()) { throw new RuntimeException(栈为空无法执行pop操作); } // 将queue1中除最后一个元素外的所有元素转移到queue2 while (queue1.size() 1) { queue2.offer(queue1.poll()); } // 弹出queue1中剩余的最后一个元素栈顶 int top queue1.poll(); // 交换两个队列的角色让queue1重新作为主队列queue2为空 QueueInteger temp queue1; queue1 queue2; queue2 temp; return top; } /** * 获取栈顶元素不弹出 * return 栈顶元素 * throws RuntimeException 栈为空时抛出异常 */ public int peek() { if (isEmpty()) { throw new RuntimeException(栈为空无法执行peek操作); } // 逻辑同pop但保留最后一个元素 while (queue1.size() 1) { queue2.offer(queue1.poll()); } int top queue1.peek(); // 将最后一个元素也转移到queue2 queue2.offer(queue1.poll()); // 交换队列角色 QueueInteger temp queue1; queue1 queue2; queue2 temp; return top; } /** * 判断栈是否为空 * return 空返回true否则返回false */ public boolean isEmpty() { return queue1.isEmpty(); } // 测试示例 public static void main(String[] args) { StackByTwoQueues stack new StackByTwoQueues(); // 入栈1 - 2 - 3 stack.push(1); stack.push(2); stack.push(3); // 输出栈顶3 System.out.println(栈顶元素 stack.peek()); // 出栈3 System.out.println(出栈元素 stack.pop()); // 输出栈顶2 System.out.println(栈顶元素 stack.peek()); // 出栈2 System.out.println(出栈元素 stack.pop()); // 出栈1 System.out.println(出栈元素 stack.pop()); // 判空true System.out.println(栈是否为空 stack.isEmpty()); } }代码说明队列选择使用LinkedList实现Queue接口LinkedList支持队列的offer/poll/peek操作效率高。异常处理pop和peek操作时若栈为空则抛出运行时异常符合栈的常规行为。队列交换每次pop/peek后交换queue1和queue2的引用避免重复创建队列节省内存。时间复杂度pushO(1)直接入队。pop/peekO(n)需要转移 n-1 个元素n 为栈的大小。优化思路可选若希望降低pop/peek的时间复杂度可改用一个队列 记录栈顶的方式入栈时直接入队并记录栈顶。出栈时将队列前 n-1 个元素依次出队并重新入队最后弹出第 n 个元素栈顶。这种方式仅需一个队列核心逻辑与双队列一致但代码更简洁。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做品牌推广网站需要多少钱介绍一个地方旅游网站怎么做

Wan2.2-S2V-14B音频驱动视频生成模型正式发布,通过创新的MoE架构与高效压缩技术,首次实现消费级硬件上的电影级视频创作,标志着AI视频生成从实验阶段迈向工业化应用。 【免费下载链接】Wan2.2-S2V-14B 【Wan2.2 全新发布|更强画质…

张小明 2026/1/11 10:18:57 网站建设

许昌做网站团队济南建网站市场

高效搭建RustDesk远程桌面服务器的终极指南 【免费下载链接】rustdeskinstall Easy install Script for Rustdesk 项目地址: https://gitcode.com/gh_mirrors/ru/rustdeskinstall 想要在5分钟内快速搭建属于自己的专业级远程桌面服务器吗?RustDesk服务器一键…

张小明 2026/1/11 11:15:02 网站建设

打广告网站域名解析步骤

Synology歌词插件终极指南:智能匹配打造完美音乐体验 【免费下载链接】Synology-LrcPlugin Lyrics plugin for Synology Audio Station/DS Audio 项目地址: https://gitcode.com/gh_mirrors/sy/Synology-LrcPlugin 还在为群晖Audio Station缺少歌词而烦恼吗&…

张小明 2026/1/11 11:58:53 网站建设

iis网站的建设国内可以上的网站

掌握Mona Sans:革命性可变字体提升网页设计体验 【免费下载链接】mona-sans Mona Sans, a variable font from GitHub 项目地址: https://gitcode.com/gh_mirrors/mo/mona-sans 在当今数字化时代,网页设计师和开发者们一直在寻找能够提升用户体验…

张小明 2026/1/11 12:29:14 网站建设

推广型网站免费建设个人网站做跳转怎么弄

近年来,人工智能技术以前所未有的速度迅猛发展,深刻改变着各行各业的发展模式与人们的生活方式。在这一快速演进的过程中,模型架构的创新始终是推动人工智能技术不断向前的核心动力。近日,由国内顶尖科研团队历经数年潜心研发的全…

张小明 2026/1/11 13:47:57 网站建设

科技部网站改版方案珠海网站建设优化推广

如何用开源工具构建专业级大模型微调系统 【免费下载链接】awesome-LLM-resourses 🧑‍🚀 全世界最好的中文LLM资料总结 项目地址: https://gitcode.com/gh_mirrors/awe/awesome-LLM-resourses 大模型微调已成为AI开发者的核心技能,而…

张小明 2026/1/11 13:56:13 网站建设