利用链队列打印杨辉三角C++函数代码
时间: 2024-01-01 16:06:08 浏览: 29
请看下面的代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
typedef struct {
int data[MAXSIZE];
int front, rear;
} SqQueue;
int InitQueue(SqQueue *Q) {
Q->front = Q->rear = 0;
return 1;
}
int EnQueue(SqQueue *Q, int x) {
if ((Q->rear + 1) % MAXSIZE == Q->front % MAXSIZE) {
return 0;
}
Q->data[Q->rear] = x;
Q->rear = (Q->rear + 1) % MAXSIZE;
return 1;
}
int DeQueue(SqQueue *Q, int *x) {
if (Q->front == Q->rear) {
return 0;
}
*x = Q->data[Q->front];
Q->front = (Q->front + 1) % MAXSIZE;
return 1;
}
void print_yh_triangle(int n) {
SqQueue Q;
InitQueue(&Q);
int i, j;
for (i = 1; i <= n; i++) {
EnQueue(&Q, 1); // 第一行为1
for (j = 1; j <= i; j++) {
int x;
DeQueue(&Q, &x);
if (j == i) {
printf("%d\n", x);
} else {
printf("%d ", x);
}
int y = 1;
if (!DeQueue(&Q, &x)) {
EnQueue(&Q, y); // 最后一列为1
} else {
y += x;
}
EnQueue(&Q, y);
}
}
}
int main() {
print_yh_triangle(10);
return 0;
}
```
希望对你有所帮助!