从无到有算法养成篇-栈和队列·队列
生活随笔
收集整理的這篇文章主要介紹了
从无到有算法养成篇-栈和队列·队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、隊列的定義
隊列是啥?
數據從表的一端進,從另一端出,且遵循 "先進先出" 原則的線性存儲結構就是隊列。
隊列的兩個基本操作:入隊將一個數據放到隊列尾部;出隊從隊列的頭部取出一個元素。
隊列的應用:循環隊列、阻塞隊列、并發隊列、優先級隊列等。
棧和隊列不要混淆,棧結構是一端封口,特點是"先進后出";而隊列的兩端全是開口,特點是"先進先出"。
隊列存儲結構的實現有以下兩種方式:
兩者的區別僅是順序表和鏈表的區別,即在實際的物理空間中,數據集中存儲的隊列是順序隊列,分散存儲的隊列是鏈隊列。
隊列的操作
入隊(尾部入隊)
①將值存入rear所代表的位置。
②rear = (rear+1)%數組的長度。
出隊(頭部出隊)
front = (front+1)%數組的長度。
隊列是否為空
front和rear的值相等,則該隊列就一定為空。
假溢出
隨著入隊、出隊的進行,會使整個隊列整體向后移動,就會出現上圖中的現象:隊尾指針已經移到了最后,即隊尾出現溢出,無法再進行入隊操作,然而實際上,此時隊列中還有空閑空間,
總結
以上是生活随笔為你收集整理的从无到有算法养成篇-栈和队列·队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tableau必知必会之学做 饼图 和
- 下一篇: 从无到有算法养成篇-单向循环链表的常规操