zoukankan      html  css  js  c++  java
  • golang实现循环队列

    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)
    }
  • 相关阅读:
    Less-21
    Less-22
    Less-21
    Less-20
    ssrf redis gopher
    Less19
    Less18
    Arm 系统查看、修改系统时间
    通过 grpc 请求标头发送自定义数据
    gRpc 空参数
  • 原文地址:https://www.cnblogs.com/9527s/p/14211228.html
Copyright © 2011-2022 走看看