博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据结构队列的应用】用队列打印杨辉三角
阅读量:6812 次
发布时间:2019-06-26

本文共 962 字,大约阅读时间需要 3 分钟。

数学中的杨辉三角大家都不陌生,那怎样用程序的方式求n行的杨辉三角呢?方法很多,队列就是其中的一种。下面给出基于队列实现的杨辉三角。

# include
# define M 100typedef struct { int a[M]; int front,rear;}sq;void init(sq *q){ q->rear=q->front=0;}int enter(sq *q,int x){ if((q->rear+1)%M==q->front) { return 0; } else { q->a[q->rear]=x; q->rear=(q->rear+1)%M; return 1; }}int delet(sq *q,int *x){ if(q->front==q->rear) { return 0; } else { *x=q->a[q->front]; q->front=(q->front+1)%M; return 1; }}int get(sq *q,int *x){ if(q->front==q->rear) { return 0; } else { *x=q->a[q->front]; return 1; }}void main(){ sq q; int n,m,i,x,y; init(&q); printf("请输入杨辉三角的行数\n"); scanf("%d",&m); enter(&q,1); for(n=2;n<=m;n++) { enter(&q,1); for(i=1;i<=n-2;i++) { delet(&q,&x); printf("%d ",x); get(&q,&y); y=y+x; enter(&q,y); } delet(&q,&x); printf("%d",x); printf("\n"); enter(&q,1); } while(q.front!=q.rear) { delet(&q,&x); printf("%d ",x); }}
程序运行结果如下:

转载于:https://www.cnblogs.com/hainange/p/6334078.html

你可能感兴趣的文章
7天 搞定 ASP.NET MVC - 第3天
查看>>
云桌面无法识别ica文件
查看>>
分区 fdisk
查看>>
docker registry v2 nginx 安全访问控制
查看>>
Linux中查看各文件夹大小命令du -h --max-depth=1
查看>>
jdk配置
查看>>
DS Storage Manager 忘记管理密码恢复
查看>>
Linux的基本指令--
查看>>
主机屋好用
查看>>
tomcat环境变量的配置
查看>>
如何安装FastDFS
查看>>
WinXp怎么开机进入Dos
查看>>
基于LoadRunner的web测试
查看>>
shell脚本控制流程
查看>>
bbs与BLOG与SNS在区别
查看>>
H3CNE 大综合实验 覆盖所有的NE课程
查看>>
统计文件行数
查看>>
ubutu使用apt-get 安装报:Err http://security.ubuntu.com precise-security InRelease 等
查看>>
Leetcode#19Remove Nth Node From End of List
查看>>
什么是软件测试
查看>>