代码随想录 Day-9

栈与队列的学习

理论基础(Java)

1、栈(stack)

可以理解为是一种装数据的容器,数据是先进后出

new Stack() (新建一个空栈)

push(入栈)

pop(将栈顶的元素出栈,并返回,简称出栈)

peek(获取栈顶元素)

isEmpty(判断栈是否为空)

size()  (获取的栈的有效元素的个数)

2、队列(queue)

Java里队列就是一个接口,底层是通过链表来实现。其数据是先进先出。

offer(入队列,就是往里面存储队列元素)

poll(出队列,就是在队列里删除一个队列元素)

peek(获取队头元素)

size(队列里面有效的队列个数)

isEmpty(判断队列是否为空)

        关于Java的栈和队列详细版本查看——https://blog.csdn.net/m0_51601105/article/details/121051198icon-default.png?t=N7T8https://blog.csdn.net/m0_51601105/article/details/121051198

力扣题目 232 用栈实现队列

直接用stack()来写,当然其下的pop,push,peek等方法也是可以的,这里有一个地方可以说:

在编码的过程中,不难发现,pop的写法和peek可以说是几乎一样,所以可以直接抽取重复的部分出来定义一个新的方法,在pop和peek里面调用就行。(也就是接口的思想)

 力扣题目 225  用队列实现栈

class MyStack {
    Queue<Integer> queue1;
    Queue<Integer> queue2;

    public MyStack() {
        queue1 = new LinkedList<>();
        queue2 = new LinkedList<>();
    }
    
    public void push(int x) {
        queue2.offer(x);
        while(!queue1.isEmpty()){
            queue2.offer(queue1.poll());
        }
        
        //交换
        Queue<Integer> queueTemp;
        queueTemp = queue1;
        queue1 = queue2;
        queue2 = queueTemp;

    }

    public int pop() {
        return queue1.poll();
    }
    
    public int top() {
        return queue1.peek();

    }
    
    public boolean empty() {
        return queue1.isEmpty();
    }
}

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值