描述
用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。
示例
输入:
["PSH2","POP","PSH1","POP"]
返回值:
思路
1先考虑栈的结构就像一个水桶,先进的元素在下面,列队就是先进的先出去,也就是把栈的反过来,将水桶里的水倒到另一个水桶里面
2入栈:正常入栈1,同时将栈1倒置,重置栈2
3出栈:从栈2中弹出一个元素,同时使用栈2倒置,重置栈1
(C语言)
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param node int整型
* @return 无
*/
#include
static int stack1[1000];
static int top1=0;
static int stack2[1000];
static int top2=0;
void push(int node ) {
// write code here
//先入栈stack1
stack1[top1++]=node;
//将stack1倒入stack
top2=0;
for(int i=0;itop1;i++){
stack2[top2++]=stack1[top1-1-i];
}
}
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param 无
* @return int整型
*/
int pop() {
// write code here
//先从栈2出栈
int ans=stack2[top2-1];
top2--;
//倒置栈
top1=0;
for(int i=0;itop2;i++){
stack1[top1++]=stack2[top2-1-i];
}
return ans;
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net