集美大学课程实验报告-实验3:栈、队列与递归

news/2025/3/23 0:13:21/文章来源:https://www.cnblogs.com/linqr/p/18787121

集美大学课程实验报告-实验3:栈、队列与递归

项目名称 内容
课程名称 数据结构
班级 网安2413
指导教师 郑如滨
学生姓名 林沁茹
学号 202421336067
实验项目名称 实验3:栈、队列与递归
上机实践日期
上机实践时间 2学时

一、目的(本次实验所涉及并要求掌握的知识点)

以下内容请根据实际情况编写

  • 掌握STL中栈和队列的基本存储结构
  • 掌握STL中string的使用
  • 熟练掌握栈(stack)和队列(queue)的基本使用
  • 掌握栈和队列的一些典型应用

二、实验内容与设计思想

题目1:栈的应用

函数相关伪代码

数制转换
cin>>x
if(x==0)
|cout<<"0"
|return
else if(x<0)
|x=-x
|cout<<"-"
whilie(x!=0)
|t=x%8
|s1.pushu(t)
|x=x/8
end
while(!s1.empty())
|e=s1.top()
|s1.pop()
|cout>>e
end

函数代码

#include <iostream>
#include <stack>
using namespace std;   
int main()
{stack<int> s1;int n;cin >> n;if (n == 0) {cout << 0;return 0;}else if (n < 0) {cout << "-";n = -n;}while (n!=0){s1.push(n % 8);n /= 8;}while (!s1.empty()){cout << s1.top();s1.pop();}return 0;
}时间复杂度O(n),空间复杂度O(n)

题目2:递归程序编写

函数相关伪代码

while(x!=0)
|cin<<x
|s1.push(x)
end
while(!s1.empty())
|sum+=s1.top
|s1.pop()
end

函数代码

#include <iostream>
#include <stack>
using namespace std;
int main()
{int sum=0,x;stack < int > s1;cin >> x;s1.push(x);while(x!=0){cin >> x;s1.push(x);}while (!s1.empty()){sum += s1.top();s1.pop();}cout << sum << endl;return 0;
}时间复杂度O(n),空间复杂度O(n)

题目3:队列的应用

函数相关伪代码

queue<int>q1,q2
int n,i,k
cin>>n
for(i=0;i<n;i++)
|cin>>k
|if(k%2)
||q1.push(k)
|else
||q2.push(k)
while(!q1.empty()&&!q2.empty())
|cout<<q1.front()
|q1.pop()
|if(!q1.empty())
||cout<<q1.front()
||q1.pop()
|cout<<q2.front()
|q2.pop()
end
while(!q1.empty())
|cout<<q1.front()
|q1.pop()
end
while(!q2.empty())
|cout<<q2.front()
|q2.pop()
end

函数代码

#include <iostream>
#include<queue>
#include<stack>
using namespace std;int main()
{queue<int>q1, q2;int n,i,k;cin >> n;for (i = 0; i < n; i++) {cin >> k;if (k % 2) {q1.push(k);}else {q2.push(k);}}while (!q1.empty()&& !q2.empty()) {cout << q1.front()<<" ";q1.pop();if(!q1.empty()){cout << q1.front()<<" ";q1.pop();}cout << q2.front()<<" ";q2.pop();}while (!q2.empty()) {cout << q2.front();q2.pop();if(!q2.empty()){cout << " ";
}}while (!q1.empty()) {cout << q1.front();q1.pop();if(!q1.empty()){cout << " ";
}}return 0;
} 时间复杂度O(n),空间复杂度O(n)

三、实验使用环境(本次实验所使用的平台和相关软件)

以下请根据实际情况编写

  • 操作系统:Windows 11专业版
  • 编程语言:C++
  • 开发工具:[Visual Studio 2022(https://code.visualstudio.com/)

四、实验步骤和调试过程(实验步骤、测试数据设计、测试结果分析)

以下请根据实际情况编写

题目1:数制转换

本机运行截图
![本机截图]

PTA提交截图
![PTA提交截图]无

题目2:递归程序转化为非递归程序

本机运行截图
![本机截图]

PTA提交截图
![PTA提交截图]无

题目3:队列的应用

本机运行截图
![本机截图]

PTA提交截图
![PTA提交截图]


五、实验小结(实验中遇到的问题及解决过程、实验体会和收获)

以下请根据实际情况编写

遇到的问题及解决方法:

  1. 问题:程序崩溃找不到原因,终端崩溃
  • 解决方法:使用打断点进行调试的方法。
  1. 问题:代码缩进不规范。
  • 解决方法:使用visual studio修复代码。

实验体会和收获:

  • 学会了如何搭建C++开发环境。
  • 掌握了基本的代码调试方法。
  • 掌握了Visual Studio调试功能的基本使用

六、附件(参考文献和相关资料)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/903699.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025-03-22 闲话

2025-03-22 闲话有些闲话是纪实的,它们可能只是平淡的文字。它们可能没有感受,不带思考。你看不到装饰,只有琐碎、补也补不到自圆其说的细节。柴米油盐大抵是这样的。 来北京独居后的生活着实安逸。每天执行一个蛮正常的作息,保证三顿饮食、偶尔晚上和网友去搓搓夜宵。睡觉…

3.22 三重积分计算方法

三重积分的实际意义:计算一个立体的质量(可以) 1 投影法(先一后二)(一个土豆切成土豆丝,最后再累加Dxy平面) 一个立体图形可以看成是两个曲面拼接而成,z=(x,y)可表示一个曲面假设x和y都是确定的,然后就累加z,最后再算面积分 先假设有一条竖线,注意竖线是从哪里进入…

15.数组

数组C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。 数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组中的特定元素可以通过索引访问,第一个索引值为 0。声明数组在 C 中要声明一个数组,需要指定元素的类型和元素的数量 下…

逆向中简单的shellcode

做题时遇到了,简单记录一下 一,介绍: shellcode分为广义和狭义,狭义指的仅仅是通过命令行shell攻击靶机,并取得控制权的代码,广义的指能完成类似任务的代码,通常是汇编/机器码。 不过这里是RE,不是PWN,所以不会有靶机,那么在下文指的是广义的shellcode,注入程序,控…

linux一些好用命令:w,fuer,getfacl,usermod,chmod

一.命令 w w 是显示用户登录时间、空闲时间、当前执行的命令等。 2.示例 pst/* : 这是ssh登录 tty: 这是直接本地登录(ctrl+alt +F* 都可以) 这个是没本地登录显示的进程 二. 命令 fuser fuser 是一个可以查看使用此文件的进程号。 1.一般使用 fuser -a /path/to/filename…

Aligning the Objective of LLM-based Program Repair 论文笔记

介绍 (1) 发表 2025-02 ICSE24 (2) 挑战当前方法的推理目标与 LLM 的训练目标没有对齐。现有 LLM-based 方法通常采用 MLM 的方式预测修复代码(然而尽管模型参数被增大百倍但修复结果甚至没有翻一番,这与其他任务的明确可伸缩性形成对比)。因此本文假设在训练中 <masked,…

监狱智能视频分析告警系统解决方案

监狱智能视频分析告警系统解决方案能够精准监测到静坐不动、离床、攀高、独处等行为。例如,当一名囚犯长时间静坐不动时,监狱智能视频分析告警系统解决方案会自动识别并发出预警,以便管理人员及时了解情况,防止囚犯出现自伤、自残等危险行为。在洗手间场景中,系统对入厕超…

昆明理工大学最新《现代材料测试技术》复试真题及答案

-材料测试 昆工材料物理与化学、材料学、材料表征与分析、材料工程、F001现代材料测试技术、864材料科学基础、昆明理工大学材料调剂

RTT 全志D1s跑tina linux

刚毕业那会抽奖抽了一块RTT的D1S开发板,看了一下打印log就放下吃灰了。跑RT-thread的感觉折腾起来太麻烦了就让他吃灰了。最近手头有一块屏幕和一个2欧的小喇叭打算驱动一下。 正好这块板子也出来好多年了。玩一玩。首先我找到了百问网的哪吒开发板他也是D1S的,直接把他的SDK…

COMSOL 基础学习笔记

设置网格 软件通过计算网格顶点的数值,推算其他位置的数值。 行函数:移动的波。 二次行函数(除网格顶点外还计算两定点连线中心的值):网格最大长度 \(≤\frac{λ}{6}\) 一次行函数:网格最大长度 \(≤\frac{λ}{12}\) 修改方式:

NSSCTF ROUND#28 Ciallo~(∠・ω )⌒☆ WriteUp

WriteUp 题目信息 来源:NSSCTF 名称:ROUND#28 Ciallo~(∠・ω )⌒☆ 分类:Reverse 描述:无题目链接: https://www.nssctf.cn/contest/732/解题思路 首先使用DIE对文件进行查壳,发现这是一个无壳的64位exe文件。于是使用64位IDA对文件进行反汇编,得到伪代码如下:先一步步…

day35 nfs共享服务器的学习

day35 nfs共享服务器的学习 1.企业集群为什么要共享服务器 没有共享服务器先看一下没有共享服务器的问题 A用户上传啦图片到web01的服务器,然后B用户访问但是负载均衡服务器把请求分发到了web02的服务器上,导致B用户查看不了图片。配置啦共享服务器无论是用户把图片发送给web…