
学院: 专业:
班级:
| 姓名 | 学号 | 实验组 | ||||
| 实验时间 | 2011-11-18 | 指导教师 | 成绩 | |||
| 实验项目名称 | 栈的实现 | |||||
| 实验目的 | 1.掌握栈、思想及其存储实现。 2.掌握栈、常见算法的程序实现。 | |||||
| 实验要求和原理 | 1.根据实验内容编程,上机调试、得出正确的运行程序。 2. 编译运行程序,观察运行情况和输出结果。 3. 写出实验报告(包括源程序和运行结果)。 | |||||
| 运行环境 | 运行Visual c++的微机一台 | |||||
| 实验内容 | 1.采用链式存储实现栈的初始化、入栈、出栈操作。 2.采用顺序存储实现栈的初始化、入栈、出栈操作。 3.编写一个主函数,调试上述算法。 | |||||
| 实 验 步 骤 及 程 序 清单 | 一:顺序存储 #include #include"LinkStack.h" void main() { SNode *top; int a,b; InitStack(top); cout<<"请输入5个整型数据:"< {cin>>a; PushStack(top,a);} ShowStack(top); for ( i=0;i<20;i++) {cout<<"请选择一项,1,入栈 ; 2,出栈 3, 遍历"< switch (b) {case 1: {cout<<"请输入需要入栈的数!"< PushStack(top,a); cout< case 2: {cout<<"执行出栈操作!"< cout< default : ShowStack(top); }}} 二:链式存储 typedef int ElemType; struct SNode //栈结点的声明 {ElemType data; SNode *next;}; void InitStack (SNode *&top) //栈的初始化 {top = NULL; }void PushStack(SNode *&top, ElemType item) //入栈操作 {SNode *p; p = new SNode; p->data = item; p->next = top; top = p; }void PopStack(SNode *&top) //出栈操作 {if (top==NULL) {cout<<"栈为空,无法执行出栈操作!"< SNode *p; p = top; top = p->next; delete p;} void ShowStack(SNode *top) //遍历操作 { SNode *p; p = top; int i = 1; cout<<"从栈顶开始显示!栈顶为第一个元素!"< {cout<<"栈的第"<data< i++;} cout< | |||||
| 运行结果 | 链式存储实现栈的初始化、入栈、出栈操作 采用顺序存储实现栈的初始化、入栈、出栈操作。 | |||||
| 实验 分析与总结 | 通过本次实验,初步掌握了顺序存储实现栈的初始化,入栈,出栈操作.链式存储实现栈的初始化,入栈,出栈操作。希望通过今后的学习能更加熟练地掌握数据结构的知识和应用,我将为此而继续努力. | |||||
| 指导教师意见 | ||||||
