面試官問(wèn)我棧和隊(duì)列的區(qū)別,我舉了個(gè)例子解釋?zhuān)谷划?dāng)場(chǎng)吐了!
微信公眾號(hào):萬(wàn)貓學(xué)社
一個(gè)漫天黃沙的上午,我準(zhǔn)時(shí)來(lái)到了面試地點(diǎn)。在回應(yīng)了前臺(tái)小姐姐的假笑后,我在會(huì)議室里坐下,等待著面試官的蹂躪。
沒(méi)過(guò)多久,一個(gè)戴著眼鏡的男人開(kāi)門(mén)走了進(jìn)來(lái)。

他進(jìn)來(lái)后便對(duì)我說(shuō):“您是**,對(duì)吧?”
我一看這就是面試官啊,不敢怠慢,連忙起身微笑道:“是的,今天來(lái)面試的。”
面試官又說(shuō):“今天沙塵暴真么嚴(yán)重,你還能準(zhǔn)時(shí)來(lái)?!蔽艺f(shuō):“應(yīng)該的。”
1. 開(kāi)門(mén)見(jiàn)山
面試官說(shuō):“咱們就開(kāi)門(mén)見(jiàn)山吧,先說(shuō)一些比較基礎(chǔ)的問(wèn)題。請(qǐng)問(wèn)棧和隊(duì)列的區(qū)別是什么?”
我微微一笑回答:“首先說(shuō)一下棧和隊(duì)列的共同點(diǎn),它們都是由幾個(gè)數(shù)據(jù)特性相同的元素組成的有限序列,也就是所謂的線性表。”
隊(duì)列
隊(duì)列(queue)是限定僅在表的一端插入元素、在另一端刪除元素的線性表。
在隊(duì)列中,允許插入的一端被稱(chēng)之為?隊(duì)尾?(rear)允許刪除的一端被稱(chēng)之為?隊(duì)頭?(front)。

隊(duì)列遵循的原則是?先進(jìn)先出?(First In First Out,F(xiàn)IFO)。
棧
棧(stack)是限定僅在表尾進(jìn)行插入或刪除操作的線性表。
在棧中,表尾有它特殊的含義,被稱(chēng)之為?棧頂?(top),相應(yīng)的,表頭被稱(chēng)之為?棧底?(bottom)。不含元素的空表被稱(chēng)之為?空棧?。

棧遵循的原則是?后進(jìn)先出?(Last In First Out,LIFO)。
2. 抖機(jī)靈
看到面試官滿(mǎn)意的微笑,我不禁地抖起了機(jī)靈:“剛才說(shuō)的比較抽象,我還一直用一個(gè)例子去理解,不知道在這里可不可以說(shuō)一下?!?/p>
面試官點(diǎn)了點(diǎn)頭說(shuō):“當(dāng)然可以,請(qǐng)您說(shuō)一下吧?!?/p>
我就問(wèn)面試官:“您知道金針菇菇有一個(gè)外號(hào)嗎?”

面試官很好奇,問(wèn):“還真不知道,什么外號(hào)?”
我回答:“金針菇的外號(hào)是see you tomorrow。為什么有這個(gè)外號(hào)呢?因?yàn)楫?dāng)吃了金針菇以后,不容易消化第二天的翔里就有它。打個(gè)比方,您昨天中午吃的金針菇,晚上吃的火龍果。今天的翔里就先有金針菇,然后才是紅色的。這就是隊(duì)列的特點(diǎn):先進(jìn)先出?!?/p>
面試官清了清嗓子:“咳咳咳!你這個(gè)例子味道有點(diǎn)兒重?!?/p>
我沒(méi)有接話又問(wèn)道:“您知道水螅嗎?”
面試官說(shuō):“不知道,是什么東西?”

我回答:“水螅一種腔腸動(dòng)物,主要吃魚(yú)蟲(chóng),也可以喂牛肉屑。重點(diǎn)是它有嘴巴沒(méi)有菊花,它的翔是從嘴巴吐出來(lái)的。比如:一只水螅先吃了一個(gè)魚(yú)蟲(chóng),然后又吃了一些牛肉屑,消化完了以后,牛肉屑的翔先從嘴巴吐出來(lái),魚(yú)蟲(chóng)的翔后從嘴巴吐出來(lái)。這就是棧的特點(diǎn):后進(jìn)先出?!?/p>
面試官用手捂著了嘴,身體抽動(dòng)了幾次,最后一次抽動(dòng)腮幫子鼓了起來(lái),白色的湯汁都指縫間滲出了幾滴,早餐可能喝了牛奶或者豆?jié){。
面試官可是經(jīng)過(guò)大風(fēng)大浪的人,這點(diǎn)小狀況足以應(yīng)付,只見(jiàn)他喉嚨一動(dòng),咕嚕又咽了回去。

感謝同學(xué)們的?一鍵三連?,帥氣又美麗!
最后還有句話是這么說(shuō)的:栽一棵樹(shù)最好的時(shí)間是十年前,其次是現(xiàn)在。對(duì)于學(xué)習(xí)編程或者在工作想升職的程序員,如果你想更好的提升你的編程能力幫助你提升水平!筆者這里或許可以幫到你~
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
