package main
import (
"container/list"
"fmt"
)
// Queue 是一个用 list.List 实现的简单队列
type Queue struct {
queue *list.List
}
// NewQueue 创建一个新的空队列
func NewQueue() *Queue {
return &Queue{
queue: list.New(),
}
}
// Enqueue 将一个元素添加到队列的末尾
func (q *Queue) Enqueue(value interface{}) {
q.queue.PushBack(value)
}
// Dequeue 从队列的前端移除一个元素
func (q *Queue) Dequeue() interface{} {
front := q.queue.Front()
if front != nil {
q.queue.Remove(front)
return front.Value
}
return nil
}
// IsEmpty 检查队列是否为空
func (q *Queue) IsEmpty() bool {
return q.queue.Len() == 0
}
func main() {
q := NewQueue()
q.Enqueue("Alice")
q.Enqueue("Bob")
q.Enqueue("Charlie")
for !q.IsEmpty() {
fmt.Printf("Dequeued: %v\n", q.Dequeue())
}
}
go实现队列
最新推荐文章于 2024-03-29 12:39:41 发布