欢迎来到天天文库
浏览记录
ID:51437446
大小:25.59 KB
页数:9页
时间:2020-03-24
《数据结构实验报告二(栈、队列与杨辉三角).docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《数据结构》实验报告项目名称栈、队列与杨辉三角专业班级软件工程工科试验班学号3903120128姓名谢江实验成绩:批阅教师:2012年5月22日实验1《单链表的建立与约瑟夫问题》实验学时:实验地点:寝室与实验室实验日期:2012年5月22日1.需求分析实验2主要是关于栈。队列的建立以及杨辉三角问题的解决(队列运用)2.概要设计以及详细设计(1)栈classStack{public:Stack();boolempty();//判断栈是否为空Tpeek();//显示栈顶元素voidpush(Tvalue);//入
2、栈Tpop();//出栈intgetSize();//当前栈中元素的数量private:T*elements;//数组指针intsize;//栈中的元素数量intcapacity;//栈的容量voidensureCapacity();//确认栈的容量是否大于元素数量};(2)队列classQueue{public:Queue();voidenQueue(Telement);//元素入队TdeQueue();//元素出对,如果没有元素,抛出异常intgetSize();//获取队列大小private:Linke
3、dListlist;//定义表};3.调试分析内容包括:调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;经验和体会等。个人标记:能建立顺序栈,以及链表顺序队列,对于比较复杂的链栈、循环队列等比较不熟悉,杨辉三角问题存在问题此次报告暂时不交,还有就是抛出异常的问题,例如:TdeQueue()throw(runtime_error);//元素出对,如果没有元素,抛出异常会提示警告:C++exceptionsp
4、ecificationignoredexcepttoindicateafunctionisnot_declspec(nothrow)于是尽可能用if(…)throwruntime_error,就不报错了4.附录(1)栈Stack.h*****************************//采用数组的方式进行栈的操作#ifndefSTACK_H#defineSTACK_HtemplateclassStack{public:Stack();boolempty();//判断栈是否为空Tpe
5、ek();//显示栈顶元素voidpush(Tvalue);//入栈Tpop();//出栈intgetSize();//当前栈中元素的数量private:T*elements;//数组指针intsize;//栈中的元素数量intcapacity;//栈的容量voidensureCapacity();//确认栈的容量是否大于元素数量};templateStack::Stack(){capacity=10;//初始栈的大小size=0;//初始元素的数量elements=newT[ca
6、pacity];//建立指针}templateboolStack::empty(){if(size==0)returntrue;elsereturnfalse;}template//只显示栈顶元素并不出栈TStack::peek(){returnelements[size-1];}templatevoidStack::ensureCapacity(){if(size>=capacity)//如果满足进行指针的更换{T*old=
7、elements;capacity=size+1;elements=newT[capacity];for(inti=0;ivoidStack::push(Tvalue){ensureCapacity();//入栈前进行栈是否溢出的判断elements[size++]=value;}templateTStack::pop(){returnelements[--
8、size];}templateintStack::getSize(){returnsize;}#endif*************************************TestStack.cpp*************************************#include#include"Stack.h"usingnamespa
此文档下载收益归作者所有