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