數(shù)據(jù)結(jié)構(gòu)中的棧與隊(duì)列還是經(jīng)常使用的,棧與隊(duì)列其實(shí)就是線性表的一種應(yīng)用。因?yàn)榫€性隊(duì)列分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ),所以??梢苑譃殒湕:晚樞驐?,隊(duì)列也可分為順序隊(duì)列和鏈隊(duì)列。本篇博客其實(shí)就是《數(shù)據(jù)結(jié)構(gòu)之線性表的順序存儲(chǔ)于鏈?zhǔn)酱鎯?chǔ)(Swift面向?qū)ο蟀妫?/span>》這篇博客的應(yīng)用。本篇博客會(huì)分別給出隊(duì)列的順序和鏈?zhǔn)酱鎯?chǔ),以及棧的順序和鏈?zhǔn)酱鎯?chǔ)。

說(shuō)到棧和隊(duì)列這兩種數(shù)據(jù)結(jié)構(gòu),理解起來(lái)應(yīng)該不難。隊(duì)列就是進(jìn)行排隊(duì)的數(shù)據(jù)結(jié)構(gòu),一個(gè)隊(duì)列肯定是線性結(jié)構(gòu)了,之所以稱之為隊(duì)列,是因?yàn)橛兄?span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">先入先出(FIFO ----first in first out)的特性。就像你去銀行辦業(yè)務(wù)排隊(duì)時(shí),你先排的隊(duì)當(dāng)然是你先辦理業(yè)務(wù),那些后排隊(duì)的要在你后邊辦業(yè)務(wù)。而棧就與隊(duì)列相反了,具有先入后出(FILO -- first in last out)的特性。在現(xiàn)實(shí)生活中手槍的子彈夾就是棧的結(jié)構(gòu),最先進(jìn)去的子彈會(huì)最后才射出。當(dāng)然在我們做iOS開發(fā)時(shí),會(huì)經(jīng)常使用到導(dǎo)航棧,而導(dǎo)航棧中存儲(chǔ)的就是你之前Push進(jìn)的頁(yè)面,也是先入后出的特性。關(guān)于棧和隊(duì)列,下方會(huì)給出詳細(xì)的介紹。

 

一、棧與隊(duì)列的綜述

棧與隊(duì)列毫無(wú)疑問都是線性結(jié)構(gòu)的,分別適用于不同的場(chǎng)景。博客的本部分會(huì)給出棧與隊(duì)列的總體介紹,然后分別給出其實(shí)現(xiàn)方案。當(dāng)然下方在棧與隊(duì)列的實(shí)現(xiàn)中,我們依然采用“面向接口

網(wǎng)友評(píng)論