Files
zogo/queue/README.md
T
4566704 80eb62cb08 feat(queue): 自 go-hua/queue 原样迁入链式队列
- 代码与测试不变,附 examples/queue 例程与包 README(含哨兵头结点 Pop 语义说明)
2026-09-20 12:20:51 +08:00

1007 B

queue

基于链表实现的先进先出队列(哨兵头结点风格)。

迁移自 go-hua/queue,代码保持原样。

用法

import "git.zeroonesoft.cn/golib/zogo/queue"

// 头结点作为哨兵,Create 批量建队
q := &queue.QueueNode{}
q.Create(1, 2, 3)
q.Length() // 3

// Push 入列(追加队尾)/ Pop 出队
q.Push(4)
v := q.Pop() // 在头结点上调用:返回头结点自身 Data(哨兵为 nil),队列前进一个节点
q.Print()    // 打印剩余元素

完整可运行例程:examples/queue/main.go

注意

  • Pop 语义特殊:在哨兵头结点上调用,返回的是哨兵自身的 Data(通常为 nil) 并让队列前进一格;取真正的队头元素请在 q.Next 上调用或先取 q.Next.Data。
  • Pop 在队列仅剩哨兵(Next == nil)时调用会 panic,出队前先判断 Length()。
  • 元素为 interface{},非泛型非并发安全,多 goroutine 场景需外加拉锁。