队列实现杨辉三角打印
2013-03-29 10:03
344 查看
利用循环顺序队列打印杨辉三角。杨辉三角的特点是两个腰上的数字都为1,其它位置上的数字是其上一行中与之相邻的两个整数之和。所以在打印过程中,第i行上的元素要由第i-1行中的元素来生成。在循环队列中依次存放第i-1行上的元素,然后逐个出队并打印,同时生成第i行元素并入队列。
代码如下:(已通过VC++调试通过)
#include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 typedef struct { int data[MAXSIZE]; int front,rear; }SeqQueue,*PSeqQueue; PSeqQueue Init_SeqQueue() {//创建一个队列 PSeqQueue Q; Q=(PSeqQueue)malloc(sizeof(SeqQueue)); if(Q) { Q->front=0; Q->rear=0; } return Q; } int Empty_SeqQueue(PSeqQueue Q) {// if(Q&&Q->front==Q->rear) return 1; else return 0; } int In_SeqQueue(PSeqQueue Q,int x) {//进队操作 if((Q->rear+1)%MAXSIZE==Q->front) { printf("队满!"); return 0; } else { Q->rear=(Q->rear+1)%MAXSIZE; Q->data[Q->rear]=x; return 1; } } int Out_SeqQueue(PSeqQueue Q,int *x) {//出队操作 if(Empty_SeqQueue(Q)) { printf("队空!"); return 0; } else { Q->front=(Q->front+1)%MAXSIZE; *x=Q->data[Q->front]; return 0; } } int Front_SeqQueue(PSeqQueue Q,int *x) {//取队头元素 if(Q->front==Q->rear) { printf("队空!"); return -1; } else { *x=Q->data[Q->front+1]%MAXSIZE; return 1; } } void Destroy_SeqQueue(PSeqQueue *Q) {//销毁队列 if(*Q) free(*Q); *Q=NULL; } #include<stdio.h> #include"head.h" #include<stdlib.h> void yanghui_trangle(int n) { PSeqQueue Q; Q=(PSeqQueue)malloc(sizeof(SeqQueue)); if(Q) { Q->front=0; Q->rear=0; } In_SeqQueue(Q,1); In_SeqQueue(Q,1);// int i; for(i=1;i<=n;i++) { printf("\n"); for(int k=0;k<=40-4*i;k+=2) printf(" ");//控制输出格式 In_SeqQueue(Q,0); int t; int s=0; for(int j=1;j<=i+2;j++) { Out_SeqQueue(Q,&t); In_SeqQueue(Q,s+t);//将前两项的和放入队尾 s=t; if(j!=i+2) printf("%4d",s);//遇到0的时候不输出,进行下一行 } } printf("\n"); Destroy_SeqQueue(&Q); } int main() { printf("请输入要打印杨辉三角几行:"); int n; scanf("%d",&n); yanghui_trangle(n); return 0; }
相关文章推荐
- 利用循环队列实现杨辉三角的打印
- 利用队列实现杨辉三角的打印
- 队列实现 杨辉三角的打印
- 输出打印杨辉三角(队列实现及数组递推实现)
- 用 队列 打印 杨辉三角
- 20162322 朱娅霖 队列加分项-用循环队列打印杨辉三角
- 打印杨辉三角系数(Pascal's Triangle / 二项式展开系数)队列实现
- 链队列的应用——打印杨辉三角
- 数据结构实验八——队列打印杨辉三角
- 12编程实现队列的入队、出队、测长、打印
- 杨辉三角之c++队列实现
- 使用队列实现杨辉三角
- 顺序队列(循环队列)+链式队列+打印杨辉三角
- 用队列打印杨辉三角
- 用队列打印杨辉三角
- 数据结构实验八——队列打印杨辉三角
- 打印杨辉三角(STL版队列)
- 队列的应用——打印二项展开式(a+b)^k的系数(杨辉三角)
- 杨辉三角的队列实现
- c++ 数据结构 用循环队列实现杨辉三角形的打印