文章目录
一、Golang数据结构-队列(数组)
1.基本介绍
(1)队列是一个有序列表,可以用数组或者是链表来实现。
(2)遵循先入先出原则。即:先存入队列的数据,要先取出。后存入的要后取出
2.处理方法
数组模拟队列
(1)队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下:
type Queue struct{
maxSize int
array [5]int //数组-> 模拟队列
front int //表示指向队列首
rear int //表示指向队列尾
}
(2)因为队列的输出、输入分别从前后端来处理,因此需要两个变量front及rear分别记录队列前后端的下标,front会随着数据输出而改变,而rear则是随着数据输入而改变
(3)当我们将数据存入队列时成为“addqueue”,“addqueu”的处理需要有两个步骤:
① 将尾指针后移:rear + 1。当front == rear 时,队列为空
②若尾指针rear小于等于队列的最大下标MaxSize - 1,则将数据存入rear所指的数组元素中,否则无法存入数据
注意:rear指队列队尾,包含队尾元素;front指队列队首,并不包含队首元素
二、使用步骤
1.使用一个结构体管理队列
代码如下:
package main
import(
"fmt"
"errors"
"os"
)
//使用一个结构体管理队列
type Queue struct{
maxSize int
array [5]int //数组-> 模拟队列
front int //表示指向队列首
rear int //表示指向队列尾
}
2.添加队列数据
代码如下:
func (this *Queue) AddQueue(val int)