隊列:算法
定義:一種能夠實現「先進先出」的存儲結構數組
分類:spa
鏈式隊列——用鏈表實現.net
靜態隊列——用數組實現blog
靜態隊列一般都必須是循環隊列隊列
循環隊列的講解:ci
1,靜態隊列爲何必須是循環隊列get
若是不是循環隊列,會形成空間的巨大浪費博客
2,循環隊列須要幾個參數來肯定 以及它們的含義it
須要2個參數來肯定
front rear
兩個參數不一樣場合有不一樣的含義
先死記住就行
1,隊列初始化 front和rear的值都是零
2,隊列非空
front表明的是隊列的第一個元素
rear表明的是隊列的最後一個有效元素的下一個元素
3,隊列空
front和rear的值相等,但不必定是零
3,循環隊列各個參數的含義
4,循環隊列入隊僞算法講解
將值存入r的位置
正確的寫法是: r = (r+1)%數組的長度
5,循環隊列出隊僞算法講解
f = (f + 1 )%數組的長度
6,如何判斷循環隊列是否爲空
若是front和rear的值相等,則該隊列就必定相等
7,如何判斷循環隊列是否已滿
預備知識:
front 的值可能比rear大,
front的值也可能比rear小
固然也可能二者相等
兩種方式:
1,多增長一個標誌參數(通常不用這種方式)
2,少用一個元素
若是r和f的值緊挨着,則隊列已滿
if( (r+1)%數組長度 == f )
{ 已滿 } else { 不滿 }
學PHP的小螞蟻 博客 http://my.oschina.net/woshixiaomayi/blog