从无到有算法养成篇-栈和队列·队列
一、隊(duì)列的定義
隊(duì)列是啥?
數(shù)據(jù)從表的一端進(jìn),從另一端出,且遵循 "先進(jìn)先出" 原則的線性存儲(chǔ)結(jié)構(gòu)就是隊(duì)列。
隊(duì)列的兩個(gè)基本操作:入隊(duì)將一個(gè)數(shù)據(jù)放到隊(duì)列尾部;出隊(duì)從隊(duì)列的頭部取出一個(gè)元素。
隊(duì)列的應(yīng)用:循環(huán)隊(duì)列、阻塞隊(duì)列、并發(fā)隊(duì)列、優(yōu)先級(jí)隊(duì)列等。
棧和隊(duì)列不要混淆,棧結(jié)構(gòu)是一端封口,特點(diǎn)是"先進(jìn)后出";而隊(duì)列的兩端全是開口,特點(diǎn)是"先進(jìn)先出"。
隊(duì)列存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)有以下兩種方式:
兩者的區(qū)別僅是順序表和鏈表的區(qū)別,即在實(shí)際的物理空間中,數(shù)據(jù)集中存儲(chǔ)的隊(duì)列是順序隊(duì)列,分散存儲(chǔ)的隊(duì)列是鏈隊(duì)列。
隊(duì)列的操作
入隊(duì)(尾部入隊(duì))
?、賹⒅荡嫒雛ear所代表的位置。
②rear = (rear+1)%數(shù)組的長度。
出隊(duì)(頭部出隊(duì))
front = (front+1)%數(shù)組的長度。
隊(duì)列是否為空
front和rear的值相等,則該隊(duì)列就一定為空。
假溢出
隨著入隊(duì)、出隊(duì)的進(jìn)行,會(huì)使整個(gè)隊(duì)列整體向后移動(dòng),就會(huì)出現(xiàn)上圖中的現(xiàn)象:隊(duì)尾指針已經(jīng)移到了最后,即隊(duì)尾出現(xiàn)溢出,無法再進(jìn)行入隊(duì)操作,然而實(shí)際上,此時(shí)隊(duì)列中還有空閑空間,
總結(jié)
以上是生活随笔為你收集整理的从无到有算法养成篇-栈和队列·队列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tableau必知必会之学做 饼图 和
- 下一篇: 从无到有算法养成篇-单向循环链表的常规操