利用循环队列实现杨辉三角的打印
2017-11-01 13:28
323 查看
#define MAXSIZE 100 #include <iostream> using namespace std; typedef int SElemType; typedef struct { SElemType *base; int front; int rear; }SqQue; void InitQue(SqQue &Q) { Q.base=new SElemType[MAXSIZE]; Q.front=Q.rear=0; } int CreatQue(SqQue &Q,int e) { if((Q.rear+1)%MAXSIZE==Q.front) return 0; Q.base[Q.rear]=e; Q.rear=(Q.rear+1)%MAXSIZE; return 1; } int OutQue(SqQue &Q,int &e) { if(Q.rear==Q.front) return 0; e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXSIZE; return 1; } int main() { SqQue sq; int e=1,j=0,status=-1; printf("请输入打印的行数\n"); scanf("%d",&j); InitQue(sq); for(int n=0;n<j;n++) { for(int m=0;m<j-1-n;m++) { printf(" "); } if(n==0) { cout<<"1"<<endl; CreatQue(sq,e); } else { int t1=0,t2=0; for(int r=0;r<n;r++) { OutQue(sq,e); t1=t2; t2=e; e=t1+t2; CreatQue(sq,e); cout<<e<<" "; } cout<<"1"<<endl; e=1; CreatQue(sq,e); } } return 1; }
这段代码直供给初学数据结构的小白们使用,有很多的不足与偷工减料的地方。没有判断是否队空与队满,只是简单地进行了操作。而且与别的博主写的代码相比是在是LOW爆了,打印方法上也是很蠢得利用空格字符数来进行的打印,但是很好理解,希望大家都能写出更优化的代码。
相关文章推荐
- 利用循环队列打印输出杨辉三角
- 利用队列实现杨辉三角的打印
- javascript中利用数组实现的循环队列
- javascript中利用数组实现的循环队列代码
- c++ 数据结构 用循环队列实现杨辉三角形的打印
- 循环队列实现杨辉三角
- 利用组合实现循环队列
- 利用循环数组实现的队列
- 利用数组和循环实现杨辉三角 (code)
- 顺序队列(循环队列)+链式队列+打印杨辉三角
- 通过共享内存,利用循环队列实现两个进程A,B之间的通信
- 队列实现 杨辉三角的打印
- java 利用数组实现循环队列
- 输出打印杨辉三角(队列实现及数组递推实现)
- 数据结构 利用循环队列层次遍历一棵二叉树 递归实现
- 队列的理解(利用数组实现循环队列)
- 使用队列循环实现杨辉三角
- C++编写利用数据结构中队列(Queue)打印出用户所指定长度的杨辉三角
- 队列实现杨辉三角打印
- 循环队列实现杨辉三角