java数据结构队列杨辉三角_数据结构实验报告四基于队列的操作来实现杨辉三角.doc...

数据结构实验报告四基于队列的操作来实现杨辉三角.doc

杨辉三角显示

问题描述:

编写程序,根据输入的行数,屏幕显示杨辉三角。

需求分析:

需求分析:

1、行数不大于20行。

2、基于队列的操作来实现杨辉三角的不断生成过程。(注:不要用其 它的公式计算的方法或者二维数组来实现)

3、基于数组实现队列的物理数据结构。

输入形式:输入一个整数n (行数不大于20)

输出形式:打印出来前化+1)行的杨辉三角数列 功能实现:输出前20层的杨辉三角序列 样例输入输出形式:

输入:6 输出:

1 n=0 11 n=1

1 2 1 n=2 1 3 3 1 n=3

1 4 6 4 1 n=4

1 5 10 10 5 1 n=5 1 6 15 20 15 6 1 n=6

5、效率分析:0(n)

概要设计

抽象数据类型

void Queue::EnQueue(int item)

//将元素item入列

//将元素item入列

//入列

int Queue::0utQueue()

//第一个元素出列返回此元素

{ return QueueValue[++iFront];}

算法的基本思想:

下面为主要实现生成杨辉三角的算法:

Q. EnQueue(l);//第一行和第二行的生成

Q. EnQueue (1):

Q. EnQueue (1);

cout<

for (i=3; i〈=n+l; i++)//n行杨辉三角数的生成与输出

{Q. EnQueue (1):

//利用第n-1行的杨辉三角//第n-1

//利用第n-1行的杨辉三角

//第n-1行第j个元素出列 //第n行的第j个元素入列

生成第n行的中间杨辉三角数 { t 2=tl:

tl=Q. OutQueue ();

Q. EnQueue (tl+t2): cout〈〈t2〈〈"

Q. EnQueue (1) ;//第n行最后一个元素为1

cout〈〈tl〈〈〃 n="〈〈i-2〈〈endl; } //输出第 n-1 行最后 1 个元素 Q. EnQueue (0) ;//以防队列为空

while (—i)//输出最后一行

cout<

cout<

^目棚人n =

6

n=0

n =1

1n=2

3 1n=3

1 4 6 4 1n=4

i 5 10 10 5 1

n=5

1 6 15 20 15 6 1

n=6

^按任意键继续-.

Press any key to

continueM

六、用户使用说明(可选)

本程序的运行环境为windows操作系统,执行文件为

yanghui. cxc o

七、实验心得(可选)

此次实验没有通过什么公式,二维数组来实现杨辉三角,而是基 于队列的操作来实现杨辉三角的不断生成过程。一方面了队列的应用 与算法,而且也了解到了新的方法实现杨辉三角。在实验过程中遇到 了部分问题,但通过与同学讨论得到了解决,挺有收获的,然需要再 接再厉!

附录(实验代码):

#include #include

using namespace std;

const int MaxSize=200;

class Queue

{friend void YangHuiSanJiao(int n) ;//生成杨辉三角的函数

private:

int QueueValue[MaxSize] ;//用一个数组实现队列

int iFront, iLast;

public:

Queue (){iFront=iLast=-l:}

void EnQueue (int item) ://将元素 item 入列

int OutQueueO; }; //第一个元素出列返回此元素

void Queue: :EnQueu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值