Implement Queue using Stacks
来源:互联网 发布:unity3d宣传片 编辑:程序博客网 时间:2024/05/17 12:49
解题思路:采用两个栈,实现队列,一个用于进栈S1,一个用于出栈和取头元素S2。进栈时必须将S2中元素全部加入S1中,出栈时必须将S1中的元素加入S2中,才可以保证先进先出。判断为空时,S1,S2均为空。
Java代码实现:
class MyQueue { private Stack stack1;private Stack stack2;MyQueue(){stack1=new Stack();stack2=new Stack();} // Push element x to the back of queue. public void push(int x) { if(stack2.isEmpty()) stack1.push(x); else { while(!stack2.isEmpty()){ stack1.push(stack2.peek()); stack2.pop(); } stack1.push(x); } } // Removes the element from in front of queue. public void pop() { if(stack1.isEmpty()) { if(!stack2.isEmpty()) stack2.pop(); } else { while(!stack1.isEmpty()){ stack2.push(stack1.peek()); stack1.pop(); } stack2.pop(); } } // Get the front element. public int peek() { if(stack1.isEmpty()) { if(!stack2.isEmpty()) return (int) stack2.peek(); return -1; } else { while(!stack1.isEmpty()){ stack2.push(stack1.peek()); stack1.pop(); } return (int) stack2.peek(); } } // Return whether the queue is empty. public boolean empty() { if(stack1.isEmpty()&&stack2.isEmpty()) return true; else return false; }}原题地址:https://leetcode.com/problems/implement-queue-using-stacks/
0 0
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- Implement Queue using Stacks
- 实现字符串转为int
- Android apk动态加载机制的研究
- 关于linux中nfs服务器的搭建
- Java JNI调用c/c++程序
- 万能拆分脚本
- Implement Queue using Stacks
- 千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记
- 命中率问题:memcached server LRU 深入分析
- Win7搭建FTP服务器
- shell中第一行#!/bin/bash的作用
- 使用sam-ba烧写linux4sam_4.7系统到SAMA5D3 Xplained开发板Send Boot File
- Nova使用LDAP作为backend认证
- IOS 密码使用MD5加密
- adb logcat命令查看并过滤android输出log