杨辉三角C++编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//SeqQueue.h
//*******************************************循环队列的类定义
#include
template
class SeqQueue
{
public:
SeqQueue(){ maxSize=50; element=new T[maxSize]; front=0; rear=0; } ~SeqQueue(){delete[] element;} //析构函数
bool EnQueue(const T& x); //若队列不满,则将x进队,否则一处处理
bool DeQueue(T& x); //若队列不空,则退出队头元素x
bool getFront(); //若队列不空,则返回队首元素的值
bool IsEmpty(){return(front==rear)?true:false;} //判断队列空否
bool IsFull() //判断队列满否
{return ((rear+1)%maxSize==front)?true:false;}
void makeEmpty() //清空队列
{front=rear=0;cout<<"队列已清空!"<
cout<<"队列的长度为:"<<(rear - front + maxSize)%maxSize<
void YangHui(int n); //杨辉三角
private:
int rear, front; //队尾与队首指针
T * element; //存放队列元素的数组
int maxSize; //队列最大可容纳元素个数
};
//*********************************************进队
template
bool SeqQueue
{ //若队列不满,则将元素x插入到该队列的队尾,否则出错处理
if(IsFull()==true)return false; //若队列满则插入失败,返回
element[rear]=x; //按照队尾指针指示的位置插入
rear=(rear+1)%maxSize; //队尾指针加
return true; //插入成功,返回
}
//*************************************************退队
template
bool SeqQueue
{ //若队列不空则函数退掉队头元素
if(IsEmpty()){cout<<"队列为空!退队操作失败!"<
front=(front+1)%maxSize; //队头指针加
return true;
}
//**************************************************取对头元素
template
bool SeqQueue
{
if (IsEmpty()){cout<<"队列为空!不能返回
队首元素的值!"<
}
//************************************************杨辉三角
template
void SeqQueue
{
SeqQueue q; //建立队列对象
int i=1,j,s=0,k=0,t,u; //计算下一行系数时用到的工作单元
q.EnQueue(i);q.EnQueue(i); //预先放入第一行的两个系数
for(i=1;i<=n;i++) //逐行处理
{
cout<
for(j=1;j<=i+2;j++) //处理第i行的i+2个系数(包括一个)
{
q.DeQueue(t); //读取一个系数
u=s+t;q.EnQueue(u); //计算下一行系数,并进队列
s=t;
if(j!=i+2) cout<}
}
}
//YangHui.cpp
#include
#include"SeqQueue.h"
int main() //主函数
{
SeqQueue
int n;
cout<<"请输入二项式系数:"<
cout<<"杨辉三角为:";
s.YangHui (n);
return 0;
}