数据结构--队列Queue--打印杨辉三角
发布日期:2021-07-01 03:39:28
浏览次数:2
分类:技术文章
本文共 1708 字,大约阅读时间需要 5 分钟。
杨辉三角大家很熟悉,不做介绍了,第n行的首末两元素均为1,中间n-2个元素由n-1行相邻两元素相加得到。
将第1行数据入队(1) -------队列表示(队头,… 队尾)-------
第2行数据1入队(1,1)--------打印第n行数据并出队,同时入队第n+1行数据--------
{ 打印第1行前0个数据,准备第2行中间数据,第2行中间没有数据 } 打印1行结尾1,出队(1) //打印 1 第2行结尾1入队(1,1)第3行数据1入队(1,1,1)
{ 打印第2行前1个数据,1 打印出队(1,1),出队的1+队首的1=2,入队(1,1,2) } //打印 1 打印2行结尾1,出队(1,2) //打印 1 第3行结尾1入队(1,2,1)第4行数据1入队(1,2,1,1)
{ 打印第3行前2个数据,1 打印出队(2,1,1),出队的1+队首的2=3,入队(2,1,1,3);2 打印出队(1,1,3),出队的2+队首的1=3入队(1,1,3,3) } //打印 1 2 打印3行结尾1,出队(1,3,3) //打印 1 第4行结尾1入队(1,3,3,1)第5行数据1入队(1,3,3,1,1)
{ 打印第4行前3个数据,1 打印出队(3,3,1,1),出队的1+队首的3=4,入队(3,3,1,1,4);3 打印出队(3,1,1,4),出队的3+队首的3=6入队(3,1,1,4,6),3 打印 出队(1,1,4,6),出队的3+队首的1=4,入队(1,1,4,6,4)} //打印 1 3 3 打印4行结尾1,出队(1,4,6,4) //打印 1 第5行结尾1入队(1,4,6,4,1)以上列举了打印4行杨辉三角
1 1 1 1 2 1 1 3 3 1代码实现如下:
/** * @description: 用队列打印杨辉三角 * @author: michael ming * @date: 2019/4/4 20:30 * @modified by: */#include#include #include using namespace std;void yanghuitriangle(size_t n){ queue line; line.push(1); //第一行元素 int temp, space = n; for(int i = 2; i <= n+1; ++i) //打印第n行元素,产生第n+1行队列 { line.push(1); //第n+1行的第1个元素 cout << setw(space--); //设置开始打印前的空格个数 for(int j = 1; j <= i - 2; ++j) //产生第n+1行的中间n-1个元素 { temp = line.front(); cout << temp << " "; //打印第n行的n-1个元素,并出队 line.pop(); temp = temp + line.front(); //相邻两数相加,并入队(n+1行的) line.push(temp); } cout << line.front() << endl; //打印第n行最后1个元素,并出队 line.pop(); line.push(1); //n+1行最后1个元素 }}int main(){ size_t N; cout << "请输入杨辉三角的行数:"; cin >> N; yanghuitriangle(N); return 0;}
运行结果
转载地址:https://michael.blog.csdn.net/article/details/89037099 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年05月02日 18时45分57秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
配置Lotus Domino集群视频详解
2019-05-01
Linux软件万花筒
2019-05-01
全球开源软件发展趋势分析
2019-05-01
Linux常用的安全工具
2019-05-01
python 多进程之进程池的操作
2019-05-01
flask整理之 flask程序中的debug模式
2019-05-01
比特币,父母这一辈能接受吗?
2019-05-01
SnapEx的新感觉,对新手很友好
2019-05-01
首个聚合器怎么产生的,并运用领域在什么
2019-05-01
区块链技术应用,最先医疗行业
2019-05-01
新币上市旧币会降价吗
2019-05-01
当博士进入币圈会怎么样
2019-05-01
《增长黑客》(肖恩·艾利斯)学习笔记——第二部分 实战
2019-05-01
python使用HTMLTestRunner查看运行函数
2019-05-01
linux下安装jenkins+git+python
2019-05-01
解决uiautomatorviewer中添加xpath的方法
2019-05-01
性能测试的必要性评估以及评估方法
2019-05-01
Spark学习——利用Mleap部署spark pipeline模型
2019-05-01
Oracle创建表,修改表(添加列、修改列、删除列、修改表的名称以及修改列名)
2019-05-01