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) }