資料結構之佇列

2021-10-19 19:54:16 字數 2801 閱讀 9913

一、定義

1) 佇列是乙個有序列表,可以用陣列或者鍊錶實現

2) 遵循先進先出的原則

二、 非環形佇列

1、設計思路:

1)建立乙個陣列array,作為佇列的乙個字段;

2)front(前端位置)初始化為-1;

3) real,表示佇列尾部,初始化為-1

4) 完成佇列的基本查詢

addqueue //加入佇列

getqueue //取出元素

showqueue //顯示佇列

type queue struct

func

(this

*queue)

addqueue

(val int)

(err error)

this

.rear++

this

.arr[

this

.rear]

=val

return

}//增加佇列

func

(this

*queue)

showqueue()

遍歷了所有的資料,故錯誤

fmt.

println

("佇列當前的情況是:"

)for i:

=this

.front+

1;i<=

this

.rear;i++

fmt.

println()

}func

(this

*queue)

getqueue()

(val int,err error)

this

.front++

return

this

.arr[

this

.front]

,err

}func main()

forelse

case

"exit"

: os.

exit(0

)default

: fmt.

println

("沒有這個選項")}

}}

缺點:當資料滿的時候,不能取出來,也不能存進去

三、環形佇列

1、設計思路

1)(rear+1)%maxsize==front時候表示佇列滿了;(當rear在front的下方的時候)

2) rear == front 的時候表示隊列為空;

3) 初始化的時候rear =0,front=0;

4) 統計該佇列多少個元素(rear+maxsize-front)%maxsize;(可能出現rear在front上方的情況;

package main

import

("fmt"

"errors"

"os"

)type circlequeue struct

func

(this

*circlequeue)

push

(val int)

(err error)

this

.arr[

this

.rear]

=val

this

.rear=

(this

.rear+1)

%this

.maxsize

return

}func

(this

*circlequeue)

pop(

)(val int,err error)

val=

this

.arr[

this

.front]

this

.front=

(this

.front+1)

%this

.maxsize

return val ,err

}func

(this

*circlequeue)

show()

fmt.

println()

}func

(this

*circlequeue)

ispull

() bool

//判斷是否滿了

func

(this

*circlequeue)

isempty

() bool

//判斷是否為空

func

(this

*circlequeue)

num(

) int

//判斷返回了多少值

func main()

forelse

case

"show"

: queue.

show()

case

"get"

: val,err:

=queue.

pop(

)if err!=nil

else

case

"exit"

: os.

exit(0

)default

: fmt.

println

("沒有這個選項")}

}}

看完如果覺得對自己有幫助請點贊支援,謝謝

資料結構之佇列

八 佇列 鏈式佇列 鍊錶實現 隊尾 rear 隊首 front 靜態佇列 陣列實現 必須是迴圈佇列 需要幾個引數來確定,各引數含義 1 佇列初始化 front和rear值都是0 2 佇列非空 front代表佇列第乙個元素 rear代表佇列最後乙個元素的 下乙個元素 3 佇列空 front和rear相...

資料結構之佇列

與棧相反,佇列是一種先進先出的線性表,它只允許在表的一端進行,而在另一端刪除元 素。在佇列中,允許插入的一端叫做隊尾,允許刪除的一端則稱為隊頭。1 鏈佇列 佇列的鏈式表示和實現 用鍊錶表示的佇列簡稱為鏈佇列,乙個鏈佇列顯然需要兩個分別指示對頭和隊尾的指標 分別稱為頭指 針和尾指標 才能唯一確定。這裡...

資料結構之佇列

一 佇列的介紹 佇列 queue 是一種線性儲存結構。它有以下幾個特點 1 佇列中資料是按照 先進先出 fifo,first in first out 方式進出佇列的。2 佇列只允許在 隊首 進行刪除操作,而在 隊尾 進行插入操作。佇列通常包括的兩種操作 入佇列 和 出佇列。1.佇列的示意圖 佇列中...