java数据结构队列杨辉三角_【数据结构队列的应用】用队列打印杨辉三角

数学中的杨辉三角大家都不陌生,那怎样用程序的方式求n行的杨辉三角呢?方法很多,队列就是其中的一种。下面给出基于队列实现的杨辉三角。

# include

# 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);

}

}程序运行结果如下:

cf1fff556bd529ab3df787b6cbdb0d62.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值