如果仅仅想打印出杨辉三角,用多维数组便可以轻松实现
使用队列反而复杂了,以下介绍用“复杂”的队列实现“简单”的杨辉三角
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define MAX 1000
typedef int datatype;
typedef struct node
{
datatype data[MAX];
int front, rear;
}queue;
void intitQueue(queue* &a) {
a = (queue*)malloc(sizeof(queue));
a->front = 0;
a->rear = 0;
}
void EnQue(queue*& a, int x) {
a->data[a->rear] = x;
a->rear++;
}
int Getsum(queue*& a) {
int x=a->data[a->front] + a->data[a->front + 1];
a->front++;
return x;
}
void PrintQueue(queue* a) {
int m =a->front, n = a->rear;
while (m< n) {
if (a->data[m] != 0)
printf("%d ", a->data[m]);
m++;
}
printf("\n");
}
int main() {
queue* m, * n;
int x;
printf("请输入要打印的行数:");
scanf_s("%d", &x);
intitQueue(m), intitQueu