首页 > 其他 > 详细

剑指 Offer 04. 用两个栈实现队列

时间:2021-04-07 23:11:46      阅读:34      评论:0      收藏:0      [点我收藏+]

剑指 Offer 04. 用两个栈实现队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

思路:一个栈只负责压入元素,另一个栈在不为空的情况下弹栈,为空的时候先将Stack1全部压栈,再弹出结果。

package main

var stack1 [] int
var stack2 [] int

func Push(node int) {
    stack1 = append(stack1, node)
}

func Pop() int{
    res := -1
    if len(stack2) > 0 {
        res = stack2[0]
        stack2 = stack2[1:]
    } else {
        if len(stack1) != 0 {
            res = stack1[0]
            stack2 = stack1[1:]
            stack1 = stack1[:0]
        }
    }
    
    return res
}

 

剑指 Offer 04. 用两个栈实现队列

原文:https://www.cnblogs.com/dingxiaoqiang/p/14629677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!