1 / 11
文档名称:

数据结构实验报告二(栈、队列与杨辉三角).docx

格式:docx   大小:28KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告二(栈、队列与杨辉三角).docx

上传人:sunny 2021/10/20 文件大小:28 KB

下载得到文件列表

数据结构实验报告二(栈、队列与杨辉三角).docx

相关文档

文档介绍

文档介绍:数据结构实验报告二(栈、队列与杨辉三角)
《数据结构》
实验报告
项目名称 栈、队列与杨辉三角
专业班级 软件工程工科试验班
学 号 3903120218
姓 名 谢江
实验成绩:
批阅教师:
2021年 5月 22 日
实验1《单链表的建立与约瑟夫问题》
实验学时: 实验地点: 寝室与实验室 实验日期: 2021年5月22日
1.需求分析
实验2 主要是关于栈。队列的建立以及杨辉三角问题的解决(队列运用)
2.概要设计以及详细设计
(1)栈
class Stack
{
public:
Stack();
bool empty();//判断栈是否为空
T peek();//显示栈顶元素
void push(T value);//入栈
T pop();//出栈
int getSize();//当前栈中元素的数量
private:
T *elements;//数组指针
int size;//栈中的元素数量
int capacity;//栈的容量
void ensureCapacity();//确认栈的容量是否大于元素数量
};
(2)队列
class Queue
{
public:
Queue();
void enQueue(T element);//元素入队
T deQueue();//元素出对,如果没有元素,抛出异常
int getSize();//获取队列大小
private:
LinkedList<T> list;//定义表
};
3.调试分析
内容包括:
调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;
算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;经验和体会等。
个人标记:
能建立顺序栈,以及链表顺序队列,对于比较复杂的链栈、循环队列等比较不熟悉,杨辉三角问题存在问题此次报告暂时不交,还有就是抛出异常的问题,例如:
T deQueue()throw (runtime_error);//元素出对,如果没有元素,抛出异常
会提示警告:
C++ exception specification ignored except to indicate a function is not_declspec(nothrow)
于是尽可能用if(…)throw runtime_error,就不报错了
4.附录
(1)栈

*****************************
//采用数组的方式进行栈的操作
#ifndef STACK_H
#define STACK_H
template<typename T>
class Stack
{
public:
Stack();
bool empty();//判断栈是否为空
T peek();//显示栈顶元素
void push(T value);//入栈
T pop();//出栈
int getSize();//当前栈中元素的数量
private:
T *elements;//数组指针
int size;//栈中的元素数量
int capacity;//栈的容量
void ensureCapacity();//确认栈的容量是否大于元素数量
};
template<typename T>
Stack<T>::Stack()
{
capacity = 10;//初始栈的大小
size = 0;//初始元素的数量
elements = new T[capacity];//建立指针
}
template<typename T>
bool Stack<T>::empty()
{
if(size == 0)
return true;
else
return false;
}
template<typename T>//只显示栈顶元素并不出栈
T Stack<T>::peek()
{
return elements[size - 1];
}
template<typename T>
void Stack<T>::ensureCapaci