您的位置 首页 golang

golang的两种队列实现方式

在Go中实现临时队列数据结构的一种简单方法是使用切片:

  1. 排队你使用内置追加功能。
  2. 要将你的第一个元素分开。
var  queue  []string
queue =  append (queue, "Hello ") // Enqueue
queue = append(queue, "world!")
for len(queue) > 0 {
 fmt.Print(queue[0]) // First element
 queue = queue[1:] // Dequeue
}
 

注意 内存泄漏

您可能希望在出列之前删除第一个元素。

// Dequeue
queue[0] = "" // Erase element (write zero value)
queue = queue[1:]
 

Warning

永远不会返回为该数组分配的内存。对于长期存在的队列,您应该使用动态数据结构,例如 链表

Linked list

容器/列表包实现了一个可以用作队列的 双向链表

queue := list.New()
queue.PushBack("Hello ") // Enqueue
queue.PushBack("world!")
for queue.Len() > 0 {
 e := queue.Front() // First element
 fmt.Print(e.Value)
 queue.Remove(e) // Dequeue
}
 

本文版权归是 所有,转载请标明出处。欢迎转载,欢迎评论,欢迎分享。如果你有文章想分享可以联系我。

文章来源:智云一二三科技

文章标题:golang的两种队列实现方式

文章地址:https://www.zhihuclub.com/99632.shtml

关于作者: 智云科技

热门文章

网站地图