package main
import "fmt"
const Size = 10
//循环队列
type queue struct {
Array []int
Front int
Rear int
}
//初始化
func QueueInit()queue {
return queue{
Array: make([]int,Size),
Front: 0,
Rear: 0,
}
}
//放入元素
//1 true 0 false
func (m *queue)inQueue(x int) int{
//还有一个空间就判满
if (m.Rear+1)%Size==m.Front{
return 0
}
m.Array[m.Rear] = x
m.Rear = (m.Rear+1)%Size
return 1
}
//释放元素
func (m*queue)outQueue()int {
if m.Front==m.Rear{
return -1
}
res:=m.Array[m.Front]
m.Front = (m.Front+1)%Size
return res
}
//队列长度
func (m*queue)getLen()int {
return (m.Rear-m.Front+Size)%Size
}
func main() {
que:=QueueInit()
for i:=0;i<10;i++{
que.inQueue(i)
}
//在还剩一个空间的时候就判断已满
que.inQueue(9)
que.outQueue()
fmt.Println(que.Array)
}