mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-24 03:26:27 +08:00
fix(Go): Update array_queue.go and array_deque.go (#1362)
* 🐞 fix: 队列为空时不应该操作指向 * 🧪 test: 添加pop测试用例 * 🔧 build: 修改testify依赖包 * 🐞 fix: 双向队列为空时,pop不操作指向 * 🔧 build: Remove third-party packages * Delete codes/go/go.sum --------- Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
parent
3f4220de81
commit
0774920d7f
3 changed files with 14 additions and 0 deletions
|
@ -72,6 +72,9 @@ func (q *arrayDeque) pushLast(num int) {
|
|||
/* 队首出队 */
|
||||
func (q *arrayDeque) popFirst() any {
|
||||
num := q.peekFirst()
|
||||
if num == nil {
|
||||
return nil
|
||||
}
|
||||
// 队首指针向后移动一位
|
||||
q.front = q.index(q.front + 1)
|
||||
q.queSize--
|
||||
|
@ -81,6 +84,9 @@ func (q *arrayDeque) popFirst() any {
|
|||
/* 队尾出队 */
|
||||
func (q *arrayDeque) popLast() any {
|
||||
num := q.peekLast()
|
||||
if num == nil {
|
||||
return nil
|
||||
}
|
||||
q.queSize--
|
||||
return num
|
||||
}
|
||||
|
|
|
@ -49,6 +49,10 @@ func (q *arrayQueue) push(num int) {
|
|||
/* 出队 */
|
||||
func (q *arrayQueue) pop() any {
|
||||
num := q.peek()
|
||||
if num == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 队首指针向后移动一位,若越过尾部,则返回到数组头部
|
||||
q.front = (q.front + 1) % q.queCapacity
|
||||
q.queSize--
|
||||
|
|
|
@ -46,9 +46,13 @@ func TestQueue(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestArrayQueue(t *testing.T) {
|
||||
|
||||
// 初始化队列,使用队列的通用接口
|
||||
capacity := 10
|
||||
queue := newArrayQueue(capacity)
|
||||
if queue.pop() != nil {
|
||||
t.Errorf("want:%v,got:%v", nil, queue.pop())
|
||||
}
|
||||
|
||||
// 元素入队
|
||||
queue.push(1)
|
||||
|
|
Loading…
Reference in a new issue