数据结构复习---------队列打印杨辉三角

本文介绍了如何使用队列来打印杨辉三角。通过分析杨辉三角的特性,利用队列存储上一行的系数,每次出队并结合前一个出队元素计算新元素,以此循环生成指定行数的杨辉三角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用队列实现打印杨辉三角


问题介绍:
如果将二项式(a+b)^i(i=2,3,4……)展开,其系数排列成杨辉三角,如何实现各行系数的前n行打印出来,如下所示:

                              0    1    1    0        i=1
                            0   1    2    1    0      i=2
                          0  1     3    3    1   0    i=3
                        0  1    4     6    4   1   0  i=4
                                     ...              i=...

问题分析:
杨辉三角从外形上有个很重要的特征——三角中的任意一个系数值(第一行除外)可以看成一个其肩膀上的两个系数之和;对于某一边侧肩膀上没有的系数地方,可以看作此处有个默认值0。因此求任意一行i(i>=2)的系数值时,可以由i-1行的系数值来获得,借助一个辅助的数据结构队列,事先将上一行的系数值入队列,包括默认的行末尾的系数0(行首默认的系数0预存在一个变量s中),利用出队列运算,每出一个系数t,利用他的值和前面刚出队列的系数值s之和得到下一行相应位置的系数值,并把刚得到的系数值入队列,并把t值赋给s,循环下去,可以得到所需指定行数的杨辉三角。具体算法如下。
算法:

void Yanghui_triangle(int n){

    int s = 0;
    int i;
    PSeqQueue sq = Init_SeqQueue();
    In_SeqQueue(sq,1);
    In_SeqQueue(sq,1);
    for (i = 1; i <= n; i++,s=0){
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值