打印杨辉三角:
代码:
#include<cstdio>
#include<cstdlib>
#define MaxSize 200
typedef int QElemType;
typedef struct {
QElemType *base; //指向动态分配的数组中的元素
int front; //记录队列头
int rear; //记录队列尾
}SqQueue;
void InitQueue(SqQueue *Q){
//构造一个空队列Q
Q->base = (QElemType *)malloc(sizeof(QElemType)*MaxSize); //申请一段长度为MaxSize*sizeof(int)的连续空间,用Q->base存放
if(!Q->base) exit(1); //验证,Q不为空,返回1
Q->front = Q->rear = 0;
}
int QueueLength(SqQueue *Q){
//返回Q的元素个数,即队列的长度
int e;
e= (Q->rear - Q->front + MaxSize) % MaxSize;
return e;
}
void EnQueue(SqQueue *Q, QElemType e){
//插入的元素e为Q的新的队尾元素
if((Q->rear+1) % MaxSize == Q->front) exit(1);
Q->base[Q->rear] = e;
Q->rear = (Q->rear + 1) % MaxSize;
}
void DeQueue(SqQueue *Q){
//若队列不空,则删除Q的队头元素,可以用e返回其值
if(Q->front == Q->rear)
exit(1); //返回1,exit为C++的退出函数,声明于stdlib.h中,对于C++其标准的头文件为cstdlib
//e=Q.base[Q.front];
Q->front = (Q->front+1) % MaxSize;
}
int GetHead(SqQueue *Q){
//返回队头元素
return Q->base[Q->front];
}
int main(){
int N,n,c;
QElemType t,x;
SqQueue f,*Q; //用Q接收f的地址
Q=&f;
InitQueue(Q); //初始化,构造一个空队列
printf("请输入杨辉三角规模:\n");
scanf("%d",&N