题解 | #用两个栈实现队列#

用两个栈实现队列

https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6

#include <stdlib.h>


int stackinTop = 0;
int stackoutTop = 0;
int stackin[1000],stackout[1000]; 





/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param node int整型 
 * @return 无
 */
 
void push(int node ) {
    // write code here
    stackin[stackinTop++]=node;
    
}

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param 无 
 * @return int整型
 */
int pop() {
    // write code here
    int stackintop =stackinTop;
    int stackouttop =stackoutTop;
    //输出栈为空,则把输入栈所有的都放进来
    if(stackouttop == 0){
        while(stackintop >0){
            stackout[stackouttop++]=stackin[--stackintop];
        }
    }
    //如果不为空,就输出一个
    int top = stackout[--stackouttop];
    //然后把剩下的都放回输入栈
    while (stackouttop > 0) {
       stackin[stackintop++]=stackout[--stackouttop];
    }
    //记得更新指针
    stackinTop = stackintop;
    stackoutTop = stackouttop;
    return top;
 
}

全部评论

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
吃不饱的肱二头肌很想退休:tnnd 我以为选妹子呢,亏我兴高采烈的冲进来😠
投递快手等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务