文章标题 原创 翻译 转载 文章内容 队列是一个先进先出的数据结构,go语言实现一个队列,为了通用队列的元素使用了interface,通常一个队列有如下方法: * Push:向队列尾部压入一个元素 * Pop:从队列头部弹出一个元素 * Front:获取队列头部元素 * Size:队列的长度 ``` package queue import "errors" import "fmt" type queue struct { ls []interface{} } func New() *queue { return &queue{} } func (q *queue)Push(i interface{}) { q.ls = append(q.ls, i) } func (q *queue)Front() (interface{}, error) { if len(q.ls) > 0 { return q.ls[0], nil } return 0, errors.New("queue is empty") } func (q *queue)Pop() { _, err := q.Front() if err == nil { q.ls = q.ls[1:] } } func (q *queue)Size() int { return len(q.ls) } func (q *queue)Print() { fmt.Println(q.ls) } ``` 使用方法: ``` q := queue.New() q.Push("a") q.Push("b") q.Push("c") q.Push("d") for { if d, err := q.Front(); err == nil { fmt.Println("pop:", d.(string)) q.Pop() q.Print() } else { break } } ``` 先向队列中压入四个元素,然后for循环不断从队列中取出元素,当队列中没有元素的时候结束循环。 文章类别 Python Mobile Android Java Shell Life Database Bug Windows IOS Tools Boost Node.js Mac Product Tips C/C++ Golang Javascript React Qt MQ MongoDB Design Web Linux LLM ChatGPT RAG AI 提交