数据结构和算法-数组模拟环形队列实现(二)|学习笔记

简介: 快速学习数据结构和算法-数组模拟环形队列实现(二)

开发者学堂课程【Go 语言核心编程 - 数据结构和算法:数据结构和算法-数组模拟环形队列实现(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/627/detail/9834


数据结构和算法-数组模拟环形队列实现(二)


三、代码运行

将以上输入代码保存,进行代码运行,运行结果为:

D:\goproject\src\go_code\chapter20>cd circelqueue

D:\goproject\src\go_code\chapter20\circelqueue>go run main.go

1. 输入 add 表示添加数据队列

2. 输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

队列为空

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

1

加入队列ok

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

arr[0]=1

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

2

加入队列ok

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

arr[0]=1  arr[1]=2

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

3

加入队列ok

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

4

加入队列ok

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

arr[0]=1  arr[1]=2  arr[2]=3  arr[3]=4

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

5

queue full

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

arr[0]=1  arr[1]=2  arr[2]=3  arr[3]=4

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

get

从队列中取出一个数 = 1

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

arr[1]=2  arr[2]=3  arr[3]=4

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

5

加入队列ok

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

arr[1]=2  arr[2]=3  arr[3]=4  arr[4]=5

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

6

queue full

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

get

从队列中取出一个数 = 2

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

arr[2]=3  arr[3]=4  arr[4]=5

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

get

从队列中取出一个数 = 3

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

get

从队列中取出一个数 = 4

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

get

从队列中取出一个数 = 5

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

show

环形队列情况如下:

队列为空

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

get

queue empty

1.输入 add 表示添加数据队列

2.输入 get 表示从队列获取数据

3.输入 show 表示显示队列

4.输入 exit 表示显示队列

add

输入你要入队列数

10

panic: runtino error: index out of range

gorout ine 1 [running]:

main.<*CircleQueue>.Push<...>

D:/goproject/src/go_code/chapter20/circelqueue/main.go:24

main.main<>

D:/goproject/src/go_code/chapter20/circelqueue/main.go:97

exit status 2

代码结果显示在上文输入代码中的24行和97行有错误,所以将this.tail++修改为this.tail = (this.tail + 1) % this.maxSize;将”this.head++修改为this.head = (this.head + 1) % this.maxSize

相关文章
|
5月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
176 1
|
5月前
|
存储 监控 算法
基于跳表数据结构的企业局域网监控异常连接实时检测 C++ 算法研究
跳表(Skip List)是一种基于概率的数据结构,适用于企业局域网监控中海量连接记录的高效处理。其通过多层索引机制实现快速查找、插入和删除操作,时间复杂度为 $O(\log n)$,优于链表和平衡树。跳表在异常连接识别、黑名单管理和历史记录溯源等场景中表现出色,具备实现简单、支持范围查询等优势,是企业网络监控中动态数据管理的理想选择。
168 0
|
9月前
|
算法 Java
算法系列之数据结构-Huffman树
Huffman树(哈夫曼树)又称最优二叉树,是一种带权路径长度最短的二叉树,常用于信息传输、数据压缩等方面。它的构造基于字符出现的频率,通过将频率较低的字符组合在一起,最终形成一棵树。在Huffman树中,每个叶节点代表一个字符,而每个字符的编码则是从根节点到叶节点的路径所对应的二进制序列。
265 3
 算法系列之数据结构-Huffman树
|
9月前
|
算法 Java
算法系列之数据结构-二叉搜索树
二叉查找树(Binary Search Tree,简称BST)是一种常用的数据结构,它能够高效地进行查找、插入和删除操作。二叉查找树的特点是,对于树中的每个节点,其左子树中的所有节点都小于该节点,而右子树中的所有节点都大于该节点。
390 22
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
272 0
|
2月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
205 2
|
3月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
226 3
|
3月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
163 6
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
178 8
|
2月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
189 8

热门文章

最新文章