说了栈和队列的区别以后,面试官当场就吐了,同学们千万要引以为戒。

举报
万猫学社 发表于 2021/06/28 16:00:43 2021/06/28
【摘要】 一个漫天黄沙的上午,我准时来到了面试地点。在回应了前台小姐姐的假笑后,我在会议室里坐下,等待着面试官的蹂躏。没过多久,一个戴着眼镜的男人开门走了进来。他进来后便对我说:“您是万猫,对吧?”我一看这就是面试官啊,不敢怠慢,连忙起身微笑道:“是的,今天来面试的。”面试官又说:“今天沙尘暴真么严重,你还能准时来。”我说:“应该的。” 1. 开门见山面试官说:“咱们就开门见山吧,先说一些比较基础的问...

一个漫天黄沙的上午,我准时来到了面试地点。在回应了前台小姐姐的假笑后,我在会议室里坐下,等待着面试官的蹂躏。

没过多久,一个戴着眼镜的男人开门走了进来。

image.png

他进来后便对我说:“您是万猫,对吧?”

我一看这就是面试官啊,不敢怠慢,连忙起身微笑道:“是的,今天来面试的。”

面试官又说:“今天沙尘暴真么严重,你还能准时来。”我说:“应该的。”

1. 开门见山

面试官说:“咱们就开门见山吧,先说一些比较基础的问题。请问栈和队列的区别是什么?”

我微微一笑回答:“首先说一下栈和队列的共同点,它们都是由几个数据特性相同的元素组成的有限序列,也就是所谓的线性表。”

队列

队列(queue)是限定仅在表的一端插入元素、在另一端删除元素的线性表。

在队列中,允许插入的一端被称之为队尾(rear)允许删除的一端被称之为队头(front)。

image.png

队列遵循的原则是先进先出(First In First Out,FIFO)。

(stack)是限定仅在表尾进行插入或删除操作的线性表。

在栈中,表尾有它特殊的含义,被称之为栈顶(top),相应的,表头被称之为栈底(bottom)。不含元素的空表被称之为空栈

image.png

栈遵循的原则是后进先出(Last In First Out,LIFO)。

2. 抖机灵

看到面试官满意的微笑,我不禁地抖起了机灵:“刚才说的比较抽象,我还一直用一个例子去理解,不知道在这里可不可以说一下。”

面试官点了点头说:“当然可以,请您说一下吧。”

我就问面试官:“您知道金针菇菇有一个外号吗?”

image.png

面试官很好奇,问:“还真不知道,什么外号?”

我回答:“金针菇的外号是see you tomorrow。为什么有这个外号呢?因为当吃了金针菇以后,不容易消化第二天的翔里就有它。打个比方,您昨天中午吃的金针菇,晚上吃的火龙果。今天的翔里就先有金针菇,然后才是红色的。这就是队列的特点:先进先出。”

面试官清了清嗓子:“咳咳咳!你这个例子味道有点儿重。”

我没有接话又问道:“您知道水螅吗?”

面试官说:“不知道,是什么东西?”

image.png

我回答:“水螅一种腔肠动物,主要吃鱼虫,也可以喂牛肉屑。重点是它有嘴巴没有菊花,它的翔是从嘴巴吐出来的。比如:一只水螅先吃了一个鱼虫,然后又吃了一些牛肉屑,消化完了以后,牛肉屑的翔先从嘴巴吐出来,鱼虫的翔后从嘴巴吐出来。这就是栈的特点:后进先出。”

面试官用手捂着了嘴,身体抽动了几次,最后一次抽动腮帮子鼓了起来,白色的汤汁都指缝间渗出了几滴,早餐可能喝了牛奶或者豆浆。

面试官可是经过大风大浪的人,这点小状况足以应付,只见他喉咙一动,咕噜又咽了回去。


文章持续更新,微信搜索「万猫学社」第一时间阅读。
关注后回复「电子书」,免费获取12本Java必读技术书籍。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。