資料結構之GO實現環形佇列

2021-10-06 06:52:16 字數 1233 閱讀 4042

環形佇列是 佇列的一種特殊形式。首先介紹佇列,然後引申出迴圈佇列。

佇列又稱為「先進先出」(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 進行刪除操作的一端稱為隊頭 出...