队列是什么?
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国际许可协议进行许可