說了棧和隊列的區別以后,面試官當場就吐了,同學們千萬要引以為戒。


一個漫天黃沙的上午,我准時來到了面試地點。在回應了前台小姐姐的假笑后,我在會議室里坐下,等待着面試官的蹂躪。

沒過多久,一個戴着眼鏡的男人開門走了進來。

他進來后便對我說:“您是萬貓,對吧?”

我一看這就是面試官啊,不敢怠慢,連忙起身微笑道:“是的,今天來面試的。”

面試官又說:“今天沙塵暴真么嚴重,你還能准時來。”我說:“應該的。”

文章持續更新,微信搜索「萬貓學社」第一時間閱讀,關注后回復「電子書」,免費獲取12本Java必讀技術書籍。

1. 開門見山

面試官說:“咱們就開門見山吧,先說一些比較基礎的問題。請問棧和隊列的區別是什么?”

我微微一笑回答:“首先說一下棧和隊列的共同點,它們都是由幾個數據特性相同的元素組成的有限序列,也就是所謂的線性表。”

隊列

隊列(queue)是限定僅在表的一端插入元素、在另一端刪除元素的線性表。

在隊列中,允許插入的一端被稱之為隊尾(rear)允許刪除的一端被稱之為隊頭(front)。

隊列遵循的原則是先進先出(First In First Out,FIFO)。

(stack)是限定僅在表尾進行插入或刪除操作的線性表。

在棧中,表尾有它特殊的含義,被稱之為棧頂(top),相應的,表頭被稱之為棧底(bottom)。不含元素的空表被稱之為空棧

棧遵循的原則是后進先出(Last In First Out,LIFO)。

文章持續更新,微信搜索「萬貓學社」第一時間閱讀,關注后回復「電子書」,免費獲取12本Java必讀技術書籍。

2. 抖機靈

看到面試官滿意的微笑,我不禁地抖起了機靈:“剛才說的比較抽象,我還一直用一個例子去理解,不知道在這里可不可以說一下。”

面試官點了點頭說:“當然可以,請您說一下吧。”

我就問面試官:“您知道金針菇菇有一個外號嗎?”

面試官很好奇,問:“還真不知道,什么外號?”

我回答:“金針菇的外號是see you tomorrow。為什么有這個外號呢?因為當吃了金針菇以后,不容易消化第二天的翔里就有它。打個比方,您昨天中午吃的金針菇,晚上吃的火龍果。今天的翔里就先有金針菇,然后才是紅色的。這就是隊列的特點:先進先出。”

面試官清了清嗓子:“咳咳咳!你這個例子味道有點兒重。”

我沒有接話又問道:“您知道水螅嗎?”

面試官說:“不知道,是什么東西?”

我回答:“水螅一種腔腸動物,主要吃魚蟲,也可以喂牛肉屑。重點是它有嘴巴沒有菊花,它的翔是從嘴巴吐出來的。比如:一只水螅先吃了一個魚蟲,然后又吃了一些牛肉屑,消化完了以后,牛肉屑的翔先從嘴巴吐出來,魚蟲的翔后從嘴巴吐出來。這就是棧的特點:后進先出。”

面試官用手捂着了嘴,身體抽動了幾次,最后一次抽動腮幫子鼓了起來,白色的湯汁都指縫間滲出了幾滴,早餐可能喝了牛奶或者豆漿。

面試官可是經過大風大浪的人,這點小狀況足以應付,只見他喉嚨一動,咕嚕又咽了回去。

感謝同學們的一鍵三連,帥氣又美麗!

微信公眾號:萬貓學社

微信掃描二維碼

關注后回復「電子書」

獲取12本Java必讀技術書籍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM