两个栈实现队列(腾讯笔试题)

Posted zwjnb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个栈实现队列(腾讯笔试题)相关的知识,希望对你有一定的参考价值。



第四题:两个栈实现队列

用两个栈实现队列,支持队列的基本操作。
输入描述:
第一行输入一个整数N,表示对队列进行的操作总数。下面N行每行输入一个字符串S,表示操作的种类。
如果s为"add",则后面还有一个整数x表示向队列尾部加入整数X。
如果s为"poll",则表示弹出队列头部操作。
如果s为"peek",则表示询问当前队列中头部元素是多少。
1 < N< 1000000, -1000000 < X < 1000000
数据保证没有不合法的操作。
输出描述:
对于每一个为"peek"的操作,输出一行表示当前队列中头部元素是多少。

package offer;

import java.util.LinkedList;
import java.util.*;
public class Queue {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
LinkedList<String> queue = new LinkedList<>();
for (int i = 0; i < N; i++) {
String str = scan.next();
switch (str) {
case "add":
String x = scan.next();
queue.add(" " + x);
break;
case "poll":
queue.pop();
break;
case "peek":
System.out.println(queue.peek());
break;
default:
break;
}
}
}
}

用例输入输出:
6
add 1
add 2
add 3
peek
 1
poll
peek
 2

 

 

 

以上是关于两个栈实现队列(腾讯笔试题)的主要内容,如果未能解决你的问题,请参考以下文章

[04数据结构]栈和队列的基本理解操作和笔试题

多线程关于腾讯笔试题

笔试题102-117

2015腾讯web前端笔试题

经典笔试题:线程通信(使用重入锁(ReentrantLock)和条件队列(Condition)实现线程间通信)

今日头条笔试题--2018 优先队列