golang数组实现队列

本文介绍了如何在Golang中使用数组实现队列,包括入队、出队和查看队列元素等基本操作。队列遵循先入先出(FIFO)原则。由于数组实现时出队后前半部分空间无法利用,文章提出了采用环形队列(循环队列)来优化这一问题,以充分利用数组空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:
实现一个队列,使其具有入队列,出队列,查看队列元素等功能。
队列介绍:
队列是一个有序列表,可以用数组或是链表来实现。
遵循先入先出的原则,即先存入队列的数据,要先取出。后存入要后取出。
数组实现
在这里插入图片描述
rear是队列最后(含最后)
front是队列的最前元素(不含)
代码如下:

package main

import (
	"errors"
	"fmt"
	"os"
)

//使用一个结构体管理队列
type Queue struct {
   
	maxSize int
	array   [5]int //数组--》模拟队列
	front   int    //表示指向队列首部
	rear    int    //表示指向队列的尾部
}

//添加数据到队列
func (this *Queue) AddQueue(val int) (err error) {
   
	//先判断队列是否已满
	if this.rear == this.maxSize-1 {
    //重要重要:rear是队列尾部含队尾,
		return errors.New("queue full"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值