[动画leetcode高频面试之数组系列之栈队列]1 栈实现队列

这是我的面试经历以及整理的相关面试高频题目,希望对大家有帮助。面试集锦

老规矩,不白嫖,点赞再看!

因为小蓝当时很想去做短视频的互联网公司,无奈学校当地鲜有相关公司来校招,所以就跋涉去了湖大,当天晚上参加了现场笔试,半夜收到第二天覆试通知,二面中面试官就让手撕用栈实现队列

在这里插入图片描述
在此大家可以先思考1分钟
顺便复习下
栈和队列
再看题解效果会更好哈


  • 栈是一种先进后出的数据结构。栈中的元素从栈顶(top)压入(push),从栈顶弹出(top)。注意:压入我们需要判栈是否已满,弹出需要判栈是否已空。下面我们看看图加深下印象。
    在这里插入图片描述
    在这里插入图片描述
    入栈 1 2 3
    出栈 3 2 1

  • 队列
    队列是一种先进先出的数据结构。队列中的元素从队尾(rear)入队(push),从队头(front)出队(pop).同样,我们用图的方式来加深印象。
    在这里插入图片描述
    在这里插入图片描述
    入队列 1 2 3
    出队列 1 2 3

一 题目

使用栈实现队列的下列操作:
push(x) – 将一个元素放入队列的尾部。
pop() – 从队列首部移除元素。
peek() – 返回队列首部的元素。
empty() – 返回队列是否为空。

示例

示例:
MyQueue queue = new MyQueue();
queue.push(1);
queue.push(2);
queue.peek(); // 返回 1
queue.pop(); // 返回 1
queue.empty(); // 返回 false

1 leetcode连接

原题连接

2 题目解析

  • 相信大家已经知道了栈是先进后出,队列是先进先出。假设1 2 3进栈,第一次出栈为3 2 1(反了一次),但是我们想要的出来的顺序为1 2 3,那么我们在此基础再反一次。
    在这里插入图片描述
  • ok,其实我们需要引入另一栈来辅助我们完成,如下图。
    在这里插入图片描述

3 动画演示

不好意思哈,因为支持视频只支持b站,腾讯视频,可是我还没上传,我就放我公众号的外链吧。
动画演示

3 代码实现

  • c++版本
    在这里插入图片描述
  • python版本
    在这里插入图片描述
  • java版本
    在这里插入图片描述

4 收尾

系列算法题均采用三种不同的语言实现,满足不同小伙伴的需求。如有不对的地方希望小伙伴指出,感谢!

❤️ 看完三件事:如果您看完有一点点收获,快速迎娶白富美方式:
1 关注公众号「我是程序员小贱」,第一时间阅读最新的文章,公众号后台回复 [小天使] 送你 最新的编程技术资料。
2 点赞,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
3 关注我和专栏,让我们成为好基友。

发布了34 篇原创文章 · 获赞 65 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章