实验4栈和队列

上传人:m**** 文档编号:403233484 上传时间:2023-04-16 格式:DOCX 页数:7 大小:12.14KB
返回 下载 相关 举报
实验4栈和队列_第1页
第1页 / 共7页
实验4栈和队列_第2页
第2页 / 共7页
实验4栈和队列_第3页
第3页 / 共7页
实验4栈和队列_第4页
第4页 / 共7页
实验4栈和队列_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验4栈和队列》由会员分享,可在线阅读,更多相关《实验4栈和队列(7页珍藏版)》请在金锄头文库上搜索。

1、实验四栈和队列、实验目的1、了解和掌握顺序栈、链栈的定义和基本运算,能够使用类C表示及实现其基本运算。2、了解和掌握循环队列、链队的定义和基本运算,能够使用类C表示及实现其基本运算。3、能够使用栈解决实际应用问题,如数制转换。4、能够使用栈解决实际应用问题,如打印杨辉三角。二、栈基本运算实验的内容及步骤1、新建项目:链栈。2、在项目中新建文件LinkStack. cpp3、在LinkStack. cpp中根据链栈的定义,补充实现链栈中各个方法,并在主函数中使用所提 供的测试函数void LinkStackTest ()进行测试,将测试结果截图至实验报告中。LinkStack. cpp文件中的部

2、分源代码如下:#include#includectime#includeusing namespace std;typedef int elemtype;struct StackNodeelemtype data;StackNode *next;typedef StackNode* LinkStack;void LinkStacklnit(LinkStack &s)在这里补充完成该函数void LinkStackPush(LinkStack &s, elemtype e)/在这里补充完成该函数void LinkStackPop(LinkStack &s)在这里补充完成该函数void LinkS

3、tackClear(LinkStack &s)while(Snext)LinkStackPop(s);void LinkStackDestroy(LinkStack &s)LinkStackClear (s);delete s;bool LinkStackEmpty(LinkStack &s)在这里补充完成该函数elemtype LinkStackTop(LinkStack &s)在这里补充完成该函数void LinkStackPrint(LinkStack &s)if(LinkStackEmpty(s)cout,z栈空,next;while(p)coutp-data ”;p二p-next;c

4、outendl;void LinkStackTest()cout,zLinkStack Test: /zendl;LinkStack S;LinkStacklnit(S);/插入元素测试srand(unsigned(time(NULL);for(int i二0;i10;i+)LinkStackPush (S, rand()%100);LinkStackPrint (S);/删除元素测试for(int i=l;i16 | | m2)cout,/转换的进制超过范围,endl;return;LinkStack s;LinkStacklnit(s);while (n!=0)/在这里补充完成该函数cou

5、t,/转换后的进制数是:;while(!LinkStackEmpty(s)/在这里补充完成该函数coutendl;2、在主函数中使用以下函数进行测试,并将测试结果截图至实验报告中。void ConvertTest()srand(unsigned(time(NULL);int n=rand()%1000;cout/,输入的十进制数为:,nendl;Convert (n, 2);Convert (n, 8);Convert (n, 16);四、队列基本运算实验的内容及步骤1、新建项目:循环队列。2、在项目中新建文件SeqQueue. cpp3、在SeqQueue. cpp中根据循环队列的定义,补充

6、实现循环队列中各个方法,并在主函数中使 用所提供的测试函数void SeqQueueTest ()进行测试,将测试结果截图至实验报告中。SeqQueue. cpp文件中的部分源代码女口下:#include#include#includectimeusing namespace std;typedef int elemtype;struct SeqQueueelemtype *elem;int size;int front;int rear;void SeqQueuelnit(SeqQueue &q,int initsize)在这里补充完成该函数void SeqQueueDestroy(SeqQ

7、ueue &q)在这里补充完成该函数bool SeqQueueEmpty(SeqQueue &q)在这里补充完成该函数void SeqQueueClear(SeqQueue &q)在这里补充完成该函数elemtype SeqQueueFront (SeqQueue &q)在这里补充完成该函数void SeqQueuelncresize(SeqQueue &q)在这里补充完成该函数;void SeqQueueln (SeqQueue &q, elemtype e)在这里补充完成该函数;void SeqQueueOut(SeqQueue &q)在这里补充完成该函数;void SeqQueuePri

8、nt(SeqQueue &q)if(SeqQueueEmpty(q)cout,/ 队列空,/endl;return;for(int i=0;i (q.rearq. front+q. size) %q. size;i+) coutq elem(q. front+i)%q. sizeJ ;coutendl;void SeqQueueTest()cout,zSeqQueue Test:,zendl;SeqQueue q;SeqQueueInit(q,10);/插入元素测试srand(unsigned(time(NULL);for(int i=0;i20;i+)SeqQueueIn(q, rand()

9、%100);SeqQueuePrint (q);/删除元素测试for(int i=l;i=3;i+)SeqQueueOut(q);SeqQueuePrint(q);五、使用队列完成打印杨辉三角1、在SeqQueue. cpp添加以下打印杨辉三角函数并实现。函数实现将十进制数n转换为m进制 数,具体如下:void PrintYanghui(int rows)int currentRow二0;SeqQueue q;SeqQueueInit(q, 10);SeqQueueln(q, 0);SeqQueueln(q, 1);int temp;while (currentRow=rows)/在这里补充完成该函数;coutendl;2、在主函数中使用以下函数进行测试,并将测试结果截图至实验报告中。void PrintYanghuiTest ()srand(unsigned(time(MULL);int n=rand()%10+6;cout,z待打印的杨辉三角行数为nendl;PrintYanghui(n);六、实验小结本次实验过程中的遇到的问题,解决办法,实验的收获和心得体会等。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号