golang資料結構之環形佇列

2022-06-11 20:00:18 字數 1449 閱讀 1293

目錄結構:

circlequeue 環型佇列

type circlequeue struct

//push 向佇列中新增乙個值

func (q *circlequeue) push(val int

) (err error)

q.array[q.rear] =val

//隊尾不包含元素

q.rear = (q.rear + 1) % q.maxsizereturn}//

pop 得到乙個值

func (q *circlequeue) pop() (val int

, err error)

//隊首包含元素

val =q.array[q.front]

q.front = (q.front + 1) % q.maxsize

return

val, err}//

isfull 佇列是否滿了

func (q *circlequeue) isfull() bool

//isempty 佇列是否為空

func (q *circlequeue) isempty() bool

//size 佇列的大小

func (q *circlequeue) size() int

//show 顯示佇列

func (q *circlequeue) show()

//輔助變數,指向front

tmpfront :=q.front

for i := 0; i < size; i++

}main.go

package main

import (

"fmt""

go_code/data_structure/queue""

os")func main()

for

else

case

"pop":

val, err :=q.pop()

if err !=nil

else

case

"show":

q.show()

fmt.println()

case

"exit":

os.exit(0)}}

}

注意標紅的地方,這是迴圈佇列的核心。

資料結構之佇列和環形佇列

佇列實現 1.佇列是一種有序列表,遵循先進先出的原則。1.陣列模擬佇列,分別有隊頭和隊尾指標,從 1開始,進隊時隊尾指標自增,出隊時隊頭指標自增,隊頭是指向第乙個資料的前乙個位置。示意圖如下 package array public class queuearray 使用陣列模擬佇列 編寫乙個arr...

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

環形佇列是 佇列的一種特殊形式。首先介紹佇列,然後引申出迴圈佇列。佇列又稱為 先進先出 fifo 線性表 限定插入操作只能在隊尾進行,而刪除操作只能在隊首進行 佇列也可以採用順序儲存結構或鍊錶結構來實現,分別稱為順序佇列和鏈佇列,下面就來簡單實現。package main import errors...

java資料結構 環形佇列

arrayqueue存在乙個問題,假設當尾部插入元素滿了,頭部又刪掉了一些元素,這種情況下,就誤認為空間滿了,造成了假溢位,實際上頭部刪除了元素留出了空間。這時候環形佇列就解決了這樣的乙個問題,環形佇列的front指標始終指向當前佇列的最後位置 end指標始終指向第乙個元素的前乙個位置為 1,儲存元...