- 1
- 0
- 约1.7万字
- 约 5页
- 2017-06-13 发布于河南
- 举报
8、队应用实验
实验八 队列的应用
一、实验目的
掌握用VC工具上机调试队列的存储方式和基本操作。
掌握队列的顺序存储结构;
掌握队列先进先出运算原则在解决实际问题中的应用。
二、实验学时
2学时
三、实验类型
验证型
四、实验内容
利用循环顺序队列打印杨辉三角形。打印的杨辉三角形如下所示:
1
1???1
1?? 2?? 1
1?? 3?? 3?? 1
1?? 4?? 6?? 4?? 1
1?? 5?? 10? 10? 5?? 1
1?? 6?? 15? 20? 15? 6?? 1
……
五、实验原理
数值转换原理
栈是一种受限的线性表,由于规定了栈的入栈与出栈只能在一端进行,故而产生了后进先出,先进后出的结果,而数值转换可采用数学方法辗转相除的方法解决,但首先产生的数值却是个位数值,最后产生的是最先用到的,这种结构符合后进先出的特点,因而可设一个栈存储依次产生的各个数值进行模拟,当除数为零时输出栈中元素即可。
2、栈的基本算法
(1)SeqStackInitiate(Q); 初始化顺序栈S。
(2)SeqStackEmpty(Q); 判断顺序栈S非空否操作。
(3)EnSeqStack (Q,x); 顺序栈S入栈操作,在顺序栈S的栈顶插入数据元素x。
(4)DeSeqStack (Q,d); 顺序栈S出栈操作,把顺序栈S的栈顶元素删除并由参数d带回。
(5) conversion(); 数值转换算法。
3、模块层次
要求画出数值转换问题的模块层次图。如图所示
图图9 数值转换程序模块图
4、关键算法NS图
六、实验步骤及要求
用VC语言编程实现建立一个队列Q,借助于栈队列Q进行打印杨辉三角。
队列Q初始化;
输入杨辉三角规模的数值n;
输出经过程序运行后的规模n的杨辉三角;
程序完成。
七、运行结果
图10 数值转换程序运行图
八、思考问题
结合实验过程,回答下列问题:
数值转换问题能否使用数组解决?
使用数组与栈有何区别?
数组与栈来解决数值转换问题那种选择为最佳选择?
九、实验报告要求
根据对栈的先进后出特点的理解,如何实现栈的基本操作;
何时选用栈去解决实际问题;
采用栈来解决问题的特点;
调试程序过程中遇到的问题及解决方案;
本次实验的结论与体会。
程序附录:
#include stdio.h
#define Maxsize 100
void fun()
{
int a[Maxsize][Maxsize]={0},i,j,n;
a[0][1]=0;a[0][0]=1;
printf(input n:\n);
scanf(%d,n);
for(i=1;i=n;i++)
{
for(j=1;j=n;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
for(i=0;i=n;i++)
{
for(a[0][6]=1;a[0][6]41-2*i;a[0][6]++)
putchar( );
a[0][6]=0;
for(j=0;j=n;j++)
if(a[i][j]!=0)
printf(%4d,a[i][j]);
printf(\n);
}
}
main()
{
fun();
}
您可能关注的文档
最近下载
- 2025年日照市中考生物试题卷(含答案).docx
- 征信报告模板-带水印版.docx VIP
- 钢筋混凝土化粪池22S702.docx VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 文广旅体局三防应急预案.docx
- 第3讲 秦统一多民族封建国家的建立课件—2024届高三历史统编版一轮复习.pptx VIP
- 第1讲 先秦:统一多民族封建国家的奠基时期 课件--2024届高三统编版(2019)历史二轮专题复习.pptx VIP
- 第一讲 中华文明的起源与奠基——先秦时期(远古—公元前221年)+课件+---2025届高三历史统编版二轮通史复习.pptx VIP
- 2025年潍坊市中考生物试题卷(含答案逐题解析).docx
- 2025年中国AI眼底筛查设备市场调研报告_2025年12月.docx VIP
原创力文档

文档评论(0)