mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 06:07:20 +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:
		@ -72,6 +72,9 @@ func (q *arrayDeque) pushLast(num int) {
 | 
				
			|||||||
/* 队首出队 */
 | 
					/* 队首出队 */
 | 
				
			||||||
func (q *arrayDeque) popFirst() any {
 | 
					func (q *arrayDeque) popFirst() any {
 | 
				
			||||||
	num := q.peekFirst()
 | 
						num := q.peekFirst()
 | 
				
			||||||
 | 
						if num == nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	// 队首指针向后移动一位
 | 
						// 队首指针向后移动一位
 | 
				
			||||||
	q.front = q.index(q.front + 1)
 | 
						q.front = q.index(q.front + 1)
 | 
				
			||||||
	q.queSize--
 | 
						q.queSize--
 | 
				
			||||||
@ -81,6 +84,9 @@ func (q *arrayDeque) popFirst() any {
 | 
				
			|||||||
/* 队尾出队 */
 | 
					/* 队尾出队 */
 | 
				
			||||||
func (q *arrayDeque) popLast() any {
 | 
					func (q *arrayDeque) popLast() any {
 | 
				
			||||||
	num := q.peekLast()
 | 
						num := q.peekLast()
 | 
				
			||||||
 | 
						if num == nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	q.queSize--
 | 
						q.queSize--
 | 
				
			||||||
	return num
 | 
						return num
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -49,6 +49,10 @@ func (q *arrayQueue) push(num int) {
 | 
				
			|||||||
/* 出队 */
 | 
					/* 出队 */
 | 
				
			||||||
func (q *arrayQueue) pop() any {
 | 
					func (q *arrayQueue) pop() any {
 | 
				
			||||||
	num := q.peek()
 | 
						num := q.peek()
 | 
				
			||||||
 | 
						if num == nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 队首指针向后移动一位,若越过尾部,则返回到数组头部
 | 
						// 队首指针向后移动一位,若越过尾部,则返回到数组头部
 | 
				
			||||||
	q.front = (q.front + 1) % q.queCapacity
 | 
						q.front = (q.front + 1) % q.queCapacity
 | 
				
			||||||
	q.queSize--
 | 
						q.queSize--
 | 
				
			||||||
 | 
				
			|||||||
@ -46,9 +46,13 @@ func TestQueue(t *testing.T) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestArrayQueue(t *testing.T) {
 | 
					func TestArrayQueue(t *testing.T) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 初始化队列,使用队列的通用接口
 | 
						// 初始化队列,使用队列的通用接口
 | 
				
			||||||
	capacity := 10
 | 
						capacity := 10
 | 
				
			||||||
	queue := newArrayQueue(capacity)
 | 
						queue := newArrayQueue(capacity)
 | 
				
			||||||
 | 
						if queue.pop() != nil {
 | 
				
			||||||
 | 
							t.Errorf("want:%v,got:%v", nil, queue.pop())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 元素入队
 | 
						// 元素入队
 | 
				
			||||||
	queue.push(1)
 | 
						queue.push(1)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user