【資料結構佇列的應用】用佇列列印楊輝三角
阿新 • • 發佈:2019-02-09
數學中的楊輝三角大家都不陌生,那怎樣用程式的方式求n行的楊輝三角呢?方法很多,佇列就是其中的一種。下面給出基於佇列實現的楊輝三角。
程式執行結果如下:# include<stdio.h> # define M 100 typedef struct { int a[M]; int front,rear; }sq; void init(sq *q) { q->rear=q->front=0; } int enter(sq *q,int x) { if((q->rear+1)%M==q->front) { return 0; } else { q->a[q->rear]=x; q->rear=(q->rear+1)%M; return 1; } } int delet(sq *q,int *x) { if(q->front==q->rear) { return 0; } else { *x=q->a[q->front]; q->front=(q->front+1)%M; return 1; } } int get(sq *q,int *x) { if(q->front==q->rear) { return 0; } else { *x=q->a[q->front]; return 1; } } void main() { sq q; int n,m,i,x,y; init(&q); printf("請輸入楊輝三角的行數\n"); scanf("%d",&m); enter(&q,1); for(n=2;n<=m;n++) { enter(&q,1); for(i=1;i<=n-2;i++) { delet(&q,&x); printf("%d ",x); get(&q,&y); y=y+x; enter(&q,y); } delet(&q,&x); printf("%d",x); printf("\n"); enter(&q,1); } while(q.front!=q.rear) { delet(&q,&x); printf("%d ",x); } }