從深入淺出數(shù)據(jù)結(jié)構(gòu)(4)到(6),我們分別討論了什么是表、什么是鏈表、為什么用鏈表以及如何用數(shù)組模擬鏈表(游標(biāo)數(shù)組),而現(xiàn)在,我們要進(jìn)入到對(duì)線性表(特意加了“線性”二字是因?yàn)榇嬖诙嘀乇恚洳皇蔷€性的,而我們現(xiàn)在所說(shuō)的表都是“一維”、“線性”的。另外就是某些數(shù)據(jù)結(jié)構(gòu)書(shū)籍中特別注意“線性”二字,為了盡量避免與某些知名書(shū)籍的沖突,我們加上“線性”二字)的最終討論(但并不是對(duì)表的最后一篇博客哦~),就是兩種最有名的線性表:隊(duì)列和棧。
在深入淺出數(shù)據(jù)結(jié)構(gòu)(4)中,我們說(shuō)過(guò),其實(shí)我們所說(shuō)的“表”用“隊(duì)列”來(lái)形容會(huì)更易懂,但“隊(duì)列”之名被一個(gè)更特殊的“表”給占用了,所以我們用“表”來(lái)形容一維排列起來(lái)的元素集合(如A1,A2,A3,……An)。那么,隊(duì)列究竟特殊在何處以至于我們將“隊(duì)列”之名賦予了它呢?回顧我們之前的文章,可以發(fā)現(xiàn),對(duì)于普通的表,我們總是“想怎么來(lái)就怎么來(lái)”:我們可以在任一位置插入、刪除,我們處理表中任一位置的元素。但是,當(dāng)我們回過(guò)頭來(lái)看看現(xiàn)實(shí)中的隊(duì)列,你會(huì)發(fā)現(xiàn)并不是“想怎么來(lái)就怎么來(lái)”的,比如排隊(duì)結(jié)賬,總是以先到先結(jié)賬的方式一個(gè)一個(gè)處理,而后到的則排末尾。所以我們之前所說(shuō)的“表”和我們?nèi)粘I钪械摹瓣?duì)列”還是有蠻大區(qū)別的。那么我們現(xiàn)在要討論的“隊(duì)列”和“表”相比有什么不同之處以至于它可以用“隊(duì)列”來(lái)稱(chēng)呼呢?答案很簡(jiǎn)單,那就是它(隊(duì)列)也符合“先到先處理(出),后到排末尾”的邏輯╮(╯_╰)╭
想要理解隊(duì)列是非常簡(jiǎn)單的,因?yàn)樗男再|(zhì)和我們?nèi)粘I钪械年?duì)列是差不多的,