Go-实现双向队列【附加基础操作】 港控/mmm° 2022-09-09 12:59 199阅读 0赞 代码片段如下: /* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:双向队列 * ``:::::::::::::::: Author:崔金朋 * ::::``:::::::::' .:::. * ::::' ':::::' .::::::::. * .::::' :::: .:::::::'::::. * .:::' ::::: .:::::::::' ':::::. * .::' :::::.:::::::::' ':::::. * .::' ::::::::::::::' ``::::. * ...::: ::::::::::::' ``::. * ```` ':. ':::::::::' ::::.. * '.:::::' ':'````.. */ package main import ( "container/list" ) type SecureQueue struct { data *list.List size int lock chan int8 } func NewSecureQueue() *SecureQueue { q := new(SecureQueue) q.data = list.New() q.lock = make(chan int8, 1) return q } // 返回队列大小 func (q *SecureQueue) QueueSize() int { q.lock <- 1 defer func(lock chan int8) { <-lock }(q.lock) return q.size } // 返回队列是否为空 func (q *SecureQueue) QueueEmpty() bool { q.lock <- 1 defer func(lock chan int8) { <-lock }(q.lock) return q.size == 0 } // 返回队列头部或尾部结点 func (q *SecureQueue) QueuePeek(right bool) interface{} { q.lock <- 1 defer func(lock chan int8) { <-lock }(q.lock) if right { return q.data.Front().Value } return q.data.Back().Value } // 头部或末尾插入值为value的元素 func (q *SecureQueue) QueuePush(value interface{}, right bool) { q.lock <- 1 defer func(lock chan int8) { <-lock }(q.lock) if right { q.data.PushFront(value) } else { q.data.PushBack(value) } q.size++ } // 删除队列头部或尾部节点 func (q *SecureQueue) QueuePop(right bool) bool { q.lock <- 1 defer func(lock chan int8) { <-lock }(q.lock) if q.size <= 0 { return false } var item *list.Element if right { item = q.data.Back() } else { item = q.data.Back() } q.data.Remove(item) q.size-- return true }
相关 Go-根据单链表实现基础队列操作 单链表实现:[https://blog.csdn.net/luyaran/article/details/119378365][https_blog.csdn.net_luya ゞ 浴缸里的玫瑰/ 2022年09月09日 02:21/ 0 赞/ 200 阅读
相关 php实现双向队列 队列是一种线性表,按照先进先出的原则进行 单向队列:只能从头进,从尾出 双向队列:头尾都可以进出 <?php class Deque{ 蔚落/ 2022年07月19日 01:11/ 0 赞/ 273 阅读
相关 go 实现双向链表 一 说明 使用带 head 头的双向链表实现——水浒英雄排行榜管理。 单向链表的缺点分析。 1 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。 叁歲伎倆/ 2021年07月24日 15:44/ 0 赞/ 441 阅读
还没有评论,来说两句吧...