首页 > 试题广场 >

由两个栈组成的队列

[编程题]由两个栈组成的队列
  • 热度指数:7530 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
用两个栈实现队列,支持队列的基本操作。

输入描述:
第一行输入一个整数N,表示对队列进行的操作总数。

下面N行每行输入一个字符串S,表示操作的种类。

如果S为"add",则后面还有一个整数X表示向队列尾部加入整数X。

如果S为"poll",则表示弹出队列头部操作。

如果S为"peek",则表示询问当前队列中头部元素是多少。


输出描述:
对于每一个为"peek"的操作,输出一行表示当前队列中头部元素是多少。
示例1

输入

6
add 1
add 2
add 3
peek
poll
peek

输出

1
2

备注:
1<=N<=1000000

-1000000<=X<=1000000

数据保证没有不合法的操作
var line=readline()

let stackpush=[],stackpop=[]

var change=function(){
      if(stackpop.length==0){
            while(stackpush.length){
                stackpop.push(stackpush.pop())
            }
        }
};

while(line=readline()){
    let [action,num]=line.split(' ')
    if(action=='add'){
        stackpush.push(parseInt(num))
    }else if(action=='peek'){
        change()
       console.log( stackpop[stackpop.length-1])
    }else{
        change()
        stackpop.pop()
    }
}

发表于 2021-06-24 00:16:03 回复(0)