循环队列实现杨辉三角(两种输出形式) |
您所在的位置:网站首页 › 初始化一个循环队列的函数定义 › 循环队列实现杨辉三角(两种输出形式) |
问题导入什么是杨辉三角呢?之前用过C/C++数组实现过打印杨辉三角,那么如何使用队列来实现呢? 目录 1、什么是杨辉三角1.1 图形1.2 特点 2、什么是队列2.1 队列的定义2.2 队列的常用公式 3、队列实现杨辉三角原理3.1 图形演示3.2 主要算法实现 4、代码实现4.1 main.cpp4.2 运行结果4.2.1按杨辉三角形打印4.2.2 按一维数组方式打印一行 1、什么是杨辉三角杨辉三角(也称帕斯卡三角)相信很多人都不陌生,它是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和。 1.1 图形下图就是杨辉三角前7行 杨辉三角的实质是二项式(a+b)n展开后各项的系数排成的三角形。 特点如下: 1、各行的第一个数都是1 2、各行的最后一个数都是1 3、从第3行起,除上面指出的第一个数和最后一个数外,其余各数是上一行同列和前一列两个数之和。 2、什么是队列 2.1 队列的定义队列(queue)是一种先进先出(First In First Out, FIFO) 的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和日常生活中的排队是一致的,最早进入队列的元素最早离开。在队列中,允许插入的一端称为队尾(rear),允许删除的一端则称为队头(front)。 一般使用循环队列(提高空间的利用率) 初始化: Q.front = Q.rear = 0; 入队操作: Q.rear=( Q.rear+1 )%MaxQueueSize; 出队操作: Q.front=( Q.front+1 )%MaxQueueSize; 判断队空: Q.front = Q.rear; 判断队满: ( Q.rear + 1 ) % MaxQueueSize == Q.front; 计算队列长度: ( Q.rear - Q.front + MaxQueueSize ) % MaxQueueSize; 3、队列实现杨辉三角原理 3.1 图形演示 第i行元素与第i+1行元素的关系示意图:![]() 原理是打印每行系数元素,每行之间用0间隔开来。 从第i行的数据出队并计算出第i+1行的数据入队的示意图:![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |