数据结构基础实验7浙江大学城市学院实验报告
课程名称 数据结构基础
实验项目名称 实验七 栈的顺序表示和实现
学生姓名 专业班级 学号
实验成绩 指导老师(签名 ) 日期
1. 实验目的和要求
1、掌握栈的存储结构及其基本操作...
浙江大学城市学院实验报告
课程名称 数据结构基础
实验项目名称 实验七 栈的顺序
示和实现
学生姓名 专业班级 学号
实验成绩 指导老师(签名 ) 日期
1. 实验目的和要求
1、掌握栈的存储结构及其基本操作。学会定义栈的顺序存储结构及其各种基本操作的实现。
2、掌握栈的后进先出原则。
3、通过具体的应用实例,进一步熟悉和掌握栈在实际问题中的运用。
2. 实验内容
1、设栈采用顺序存储结构(用动态数组),请编写栈的各种基本操作的实现函数,并存放在头文件test7.h中。同时建立一个验证操作实现的主函数文件test7.cpp,编译并调试程序,直到正确运行。
提示:
⑴ 栈的动态数组顺序存储结构可定义如下:
struct Stack {
ElemType *stack ;
// 存栈元素
int top;
// 栈顶指示器
int MaxSize; // 栈的最大长度
};
⑵ 栈的基本操作可包括:
① void InitStack (Stack &S); //构造一个空栈 S
② int EmptyStack (Stack S); //若栈S为空栈返回1,否则返回0
③ void Push(Stack &S, ElemType item); //元素 item进栈
④ ElemType Pop(Stack &S); //栈S的栈顶元素出栈并返回
⑤ ElemType Peek(Stack S); //取栈S的当前栈顶元素并返回
⑥ void ClearStack (Stack &S); //清除栈s,使成为空栈
2、应用:写一函数,判断给定的字符串是否中心对称。如字符串“abcba”、“abccba”均为中心对称,字符串“abcdba”不中心对称。要求利用test7.h中已实现的有关栈的基本操作函数来实现。请把该函数添加到文件test7.cpp中的主函数前,并在主函数中添加相应语句进行测试。函数原型如下:
int IsReverse(char *s) //判断字符串S是否中心对称,是返回1,否则返回0
3、填写实验报告,实验报告文件取名为report7.doc。
4、上传实验报告文件report7.doc 、源程序文件test7.cpp及test7.h到Ftp服务器上( ftp://10.61.14.240:5000 )自己的文件夹下。
三. 函数的功能说明及算法思路
(包括每个函数的功能说明,及一些重要函数的算法实现思路)
1、
void InitStack (Stack &S) //构造一个空栈 S
{
S.MaxSize=10;
S.stack=new ElemType[S.MaxSize];
if(!S.stack) {
cerr<<"动态存储分配失败!"<
分析
(包括运行结果截图、结果分析等)
1、
2、
五. 心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
【附录----源程序】
1、Test7.h
typedef struct Stack {
ElemType *stack;
int top;
int MaxSize;
};
void InitStack (Stack &S) //构造一个空栈 S
{
S.MaxSize=10;
S.stack=new ElemType[S.MaxSize];
if(!S.stack) {
cerr<<"动态存储分配失败!"<
#include
typedef int ElemType;
#include"test7.h"
void main()
{
Stack s;
InitStack(s);
int a[8]={1,2,3,4,5,6,7,8};
int i;
for(i=0;i<8;i++) Push(s,a[i]);
cout<
本文档为【数据结构基础实验7】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。