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

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

开发者学堂课程【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

相关文章
|
2月前
|
存储 Java 程序员
数据结构之 - 深入了解数组数据结构
数据结构之 - 深入了解数组数据结构
41 6
|
2月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
40 0
|
2月前
|
存储 算法 搜索推荐
探索常见数据结构:数组、链表、栈、队列、树和图
探索常见数据结构:数组、链表、栈、队列、树和图
108 64
|
2月前
|
算法 程序员 索引
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
栈的基本概念、应用场景以及如何使用数组和单链表模拟栈,并展示了如何利用栈和中缀表达式实现一个综合计算器。
34 1
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
|
2月前
|
存储 算法 定位技术
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
这篇文章主要介绍了稀疏数组和队列的概念、应用实例以及如何使用数组模拟队列和环形队列的实现方法。
23 0
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
|
3月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
3月前
|
存储 Java
java数据结构,线性表顺序存储(数组)的实现
文章介绍了Java中线性表顺序存储(数组)的实现。线性表是数据结构的一种,它使用数组来实现。文章详细描述了线性表的基本操作,如增加、查找、删除、修改元素,以及其他操作如遍历、清空、求长度等。同时,提供了完整的Java代码实现,包括MyList接口和MyLinearList实现类。通过main函数的测试代码,展示了如何使用这些方法操作线性表。
|
2月前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
2天前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。
|
14天前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。