1 / 14
文档名称:

栈溢出试验报告.docx

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

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

分享

预览

栈溢出试验报告.docx

上传人:yusuyuan 2022/7/24 文件大小:19 KB

下载得到文件列表

栈溢出试验报告.docx

相关文档

文档介绍

文档介绍:华中科技大学计算机学院《信息系统应用安全》实验报告
实验名称 团队成员:
注:团队成员贡献百分比之和为1
教师评语:

?操作系统:windows xp sp3 ?编译平台:visual c++ ?调试环境:o指导,解决程序中的问题,正确解决实际中存在的异常情况,逐 步改善功能。
(三)根据实验内容,编译程序。
实验环境:windows xp visual c++
三、实验内容及过程描述
实验步骤:
进入visual c++ 。
输入自己编好的程序。
检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有 错,及时改正。
进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,
根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。⑤ 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果
是否正确,应运行多次,分别检查在不同情况下结果是否正确。
实验内容:编译以下题目的程序并调试运行。
1)、编写一个程序algo3-,实现顺
的各种基本运算,并在此基础上设计一
程序并完成如下功能:
(1)初始化栈s;
(2)判断栈s是否非空;序栈个主
(3)依次进栈元素a,b,c,d,e;
(4)判断栈s是否非空;
(5)输出出栈序列;
(6)判断栈s是否非空;
(7)释放栈。 proj3_1工程组成
。。图中方框 表示函数,方框中指出函数名,箭头方向表示函数间的调用关系。
proj3_1工程的程序结构图
其中包含如下函数:
initstack(sqstack *&s) //初始化栈 s
destroystack(sqstack *&s) //销毁栈 s
stackempty(sqstack *s) //判断栈空
push(sqstack *&s,elemtype e) //进栈
pop(sqstack *&s,elemtype &e) //出栈
gettop(sqstack *s,elemtype &e) //取栈顶元素
对应的程序如下:
〃文件名:
#include <>
#include <>
#define maxsize 100
typedef char elemtype;
typedef struct
{
elemtype data[maxsize];
int top; //栈顶指针
} sqstack;
void initstack(sqstack *&s) //初始化栈 s
{ s=(sqstack *)malloc(sizeof(sqstack));
s->top=-1; //栈顶指针置为-1
}
void destroystack(sqstack *&s) //销毁栈 s
{
free(s);
}
bool stackempty(sqstack *s) //判断栈空
{
return(s->top==-1);
}
bool push(sqstack *&s,elemtype e) //进栈
{ if (s->top==maxsize-1) //栈满的情况,即栈上溢出 return false;
s->top++; //栈顶指针增1
s->data[s->top]=e; //元素e放在栈顶指针处 return true;
}
bool pop(sqstack *&s,elemtype &e) //出栈
{ if (s->top==-1) //栈为空的情况,即栈下溢出 return false;
e=s->data[s->top]; //取栈顶指针元素的元素
s->top--; //栈顶指针减1
return true;
}
bool gettop(sqstack *s,elemtype &e) //取栈顶元素
{ if (s->top==-1) //栈为空的情况,即栈下溢出 return false;
e=s->data[s->top]; //取栈顶指针元素的元素 return true;
}
〃文件名:
#include <>
#includ