队列只需要最简单的先进先出
开始
首先定义结构体
type Queue struct {
linkedList.List
}
由Queue维护前面写到的单链表,没看过的可以看上一篇文章
函数
Queue只需要有三个函数:
- put 塞入最前
- pop 弹出最后
- size 获取长度
func (queue *Queue) Put(data interface{}) {
queue.Add(data)
}
func (queue *Queue) Pop() interface{} {
node, _ := queue.RemoveAtIndex(queue.Length())
return node.Data
}
func (queue *Queue) Size() interface{} {
return queue.Length()
}
测试
func Test() {
queue := Queue{}
queue.Put("第一个")
queue.Put("第二个")
queue.Put("第三个")
// 弹出最后
fmt.Println(queue.Pop())
// 队列长度
fmt.Println(queue.Size())
}
最后输出:
第一个
2
Process finished with exit code 0
满足先进先出原则
队列为先进先出,栈为先进后出,两者无多大区别