環形佇列是 佇列的一種特殊形式。首先介紹佇列,然後引申出迴圈佇列。
佇列又稱為「先進先出」(fifo)線性表
限定插入操作只能在隊尾進行,而刪除操作只能在隊首進行
佇列也可以採用順序儲存結構或鍊錶結構來實現,分別稱為順序佇列和鏈佇列,下面就來簡單實現。
package main
import (
"errors"
"fmt"
"os"
)type circlequeue struct
//判斷佇列是否已滿
func (this *circlequeue) isfull() bool
//判斷隊裡是否為空
func (this *circlequeue) isempty() bool
//進佇列
func (this *circlequeue) addqueue(val int) (err error)
//把值給尾部
this.array[this.tail] = val
this.tail = (this.tail + 1) % this.maxsize
return}
//出佇列
func (this *circlequeue) getqueue() (val int, err error)
val = this.array[this.head]
this.head = (this.head + 1) % this.maxsize
return}
//顯示佇列元素
func (this *circlequeue) listqueue()
//定義乙個輔助變數 指向head
temphead := this.head
for i := 0; i < size; i++
fmt.println()}
//主函式
func main()
var key string
var val int
for else
case "get":
val, err := queue.getqueue()
if err != nil else
case "show":
queue.listqueue()
case "exit":
os.exit(0)
} }}
資料結構之佇列和環形佇列
佇列實現 1.佇列是一種有序列表,遵循先進先出的原則。1.陣列模擬佇列,分別有隊頭和隊尾指標,從 1開始,進隊時隊尾指標自增,出隊時隊頭指標自增,隊頭是指向第乙個資料的前乙個位置。示意圖如下 package array public class queuearray 使用陣列模擬佇列 編寫乙個arr...
golang資料結構之環形佇列
目錄結構 circlequeue 環型佇列 type circlequeue struct push 向佇列中新增乙個值 func q circlequeue push val int err error q.array q.rear val 隊尾不包含元素 q.rear q.rear 1 q.ma...
資料結構 順序表實現環形佇列
1 佇列的定義 佇列是一種特殊的線性表,線性表兩端都可以進行插入刪除,而佇列只能在隊頭刪除,隊尾插入。插入元素稱為入隊,刪除元素稱為出隊。2 佇列的特點 1 只允許在一端進行插入資料操作,在另一端進行刪除資料操作的特殊線性表 2 進行插入操作的一端稱為隊尾 入佇列 3 進行刪除操作的一端稱為隊頭 出...