用队列方法输出杨辉三角.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用队列方法输出杨辉三角

/* 用队列方法输出杨辉三角。 */ #includeiostream.h #includeiomanip.h #includestdlib.h #define ElemType int /*-----LNode的结点类型定义-----*/ struct LNode { ElemType data; //值域 LNode* next; //链接指针域 }; /*-----队列的链接存储结构的定义-----*/ struct LinkQueue { LNode* front; //队首指针 LNode* rear; //队尾指针 }; /*------1.初始化链队-----*/ void InitQueue(LinkQueue HQ) { HQ.front=HQ.rear=NULL; //把队首和队尾指针置为空 } /*-----2.向链队中插入一个元素------*/ void EnQueue(LinkQueue HQ, ElemType item) { LNode* newptr=new LNode; //得到一个新的结点 newptr-data=item; //把item 的值赋给新结点的值域 newptr-next=NULL; //把新结点的指针域置为空 if(HQ.rear==NULL) //若链队为空,则新结点既是队首又是队尾 { HQ.front=HQ.rear=newptr; } else //若链队非空,则新结点被链接到队尾并修改队尾指针 { HQ.rear=HQ.rear-next=newptr; } } /*-------3.从队列中删除一个元素-------*/ ElemType OutQueue(LinkQueue HQ) { if(HQ.front==NULL) //若链队为空则终止运行 { cerr链队为空,无法删除!endl; exit(1); } ElemType temp=HQ.front-data; //暂存队首元素以便返回 LNode* p=HQ.front; //暂存队首指针以便收回队首指针 HQ.front=p-next; //使队首指针指向下一个结点 if(HQ.front==NULL) //若删除后链队为空,则使队尾指针为空 { HQ.rear=NULL; } delete p; //回收原队首结点 return temp; //返回被删除的队首元素 } void YanyHuiTriangular(LinkQueue HQ, int n) { int i,j; //i,j 都是循环变量 int first,second; //first,second 分别记录上一行的两个累加数 EnQueue(HQ,1); for(i=1; in+1; i++) { //第 0 至 n-1 行元素分别入列,并输出;最后第 n 行入列 first=0; second=0; //控制每行前头空格的输出 for(j=0; jn-i+1; j++) { coutsetw(3) ; } for(j=0; ji; j++) { second=OutQueue(HQ); coutsetw(3)secondsetw(3) ; EnQueue(HQ,first+second); first=second; } coutendl; //输完一行,回车 EnQueue(HQ,second); } //最后输出最后一行元素(即第 n 行出列) for(j=0; jn+1; j++) { coutsetw(3)OutQueue(HQ)setw(3) ; } coutendl; } void main() { LinkQueue LQ; InitQueue(LQ); cout用队列输出杨辉三角!endlendl; int n; cout请输入要输出多少行杨辉三角:; cinn; YanyHuiTriangular(LQ,n); }

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档