队列是什么?
queue
作为一种先进先出
(FIFO, First-In-First-Out)的线性表结构,在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear
)进行插入操作,在前端(称为front
)进行删除操作。
在Go语言中,使用slice模拟队列结构。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| type Queue interface { Enqueue(i int) Dequeue() (i int, err error) }
type queue struct { slice []int }
func (q *queue) Enqueue(i int) { q.slice = append(q.slice, i) }
func (q *queue) Dequeue() (i int, err error) { if len(q.slice) == 0 { return 0, errors.New("no int in queue") } i = q.slice[0] q.slice = q.slice[1:] return }
func (q *queue) String() string { return fmt.Sprintf("%#v", q.slice) }
|
本文标题:go实现队列
文章作者:小师
发布时间:2019-06-23
最后更新:2019-06-23
原始链接:chunlife.top/2019/06/23/go实现队列/
版权声明:本站所有文章均采用知识共享署名4.0国际许可协议进行许可