资源描述
(封面)学 生 实 验 报 告学 院: 国际经贸学院 课程名称: 数据结构 专业班级: 09电子商务 姓 名: 学 号: 学生实验报告(经管类专业用)学生姓名 学号 同组人实验项目顺序栈基本实验必修 选修 演示性实验 验证性实验 操作性实验 综合性实验实验地点 实验仪器台号W-031指导教师 实验日期及节次1.2一、实验目的及要求:1、目的通过实验,实现顺序栈的各种基本运算。2、内容及要求编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成下列功能:(1)初始化栈S。(2)判断栈S是否非空。(3)依次进栈元素a,b,c,d,e。(4)判断栈S是否非空。(5)输出栈的长度。(6)输出从栈顶到栈底的元素。(7) 输出出栈序列;(8) 判断链栈S是否为空;(9)释放链栈二、仪器用具:仪器名称规格/型号数量备注计算机1有网络环境Wim-Tc系统1三、实验方法与步骤:一、查阅顺序栈等相关资料,熟悉顺序栈基本概念和流程二、“开展”顺序栈实验流程三、整理实验数据和文档,总结实验的过程,编写实验报告四、实验结果与数据处理:1、顺序栈的代码:#include #include #define MaxSize 100typedef char ElemType;typedef struct ElemType dataMaxSize;int top;/栈顶指针 SqStack;void InitStack(SqStack *&s)s=(SqStack *)malloc(sizeof(SqStack);s-top=-1;void ClearStack(SqStack *&s)free(s);int StackLength(SqStack *s)return(s-top+1);int StackEmpty(SqStack *s)return(s-top=-1);int Push(SqStack *&s,ElemType e)if (s-top=MaxSize-1)return 0;s-top+;s-datas-top=e;return 1;int Pop(SqStack *&s,ElemType &e)if (s-top=-1)return 0;e=s-datas-top;s-top-;return 1;int GetTop(SqStack *s,ElemType &e)if (s-top=-1)return 0;e=s-datas-top;return 1;void DispStack(SqStack *s)int i;for (i=s-top;i=0;i-)printf(%c ,s-datai);printf(n);void main() / 主函数SqStack S=(SqStack *)malloc(sizeof(SqStack);printf(1)初始化顺序栈n);InitStack(S);printf(2)判断顺序栈是否为空:n);StackEmpty(S);printf(3)依次进栈元素a,b,c,d,e:n);Push(S,a);Push(S,b);Push(S,c);Push(S,d);Push(S,e);printf(4)判断顺序栈是否为空:n);StackEmpty(S);printf(5)输出栈长度:%dn,StackLength(S);printf(6)输出从栈顶到栈底的元素:n);StackTraverse(S);printf(7)读出栈顶元素:%dn,GetTop(S,e); printf(8)删除栈顶元素:%dn,Pop(S,e);printf(9)输出从栈顶到栈底的元素:n);StackTraverse(S);printf(10)判断顺序栈是否为空n);StackEmpty(S);printf(11)释放栈。);DestroyStack(S);2、实验流程及截图: 五、讨论与结论在实验的过程中,需要注意以下几点:首先,实验操作者要注意掌握:顺序栈等概念。其次,需要对代码进行编写,修改。 最后,在实验操作的过程中,需要耐心和细心。六、指导教师评语及成绩:评语: 成绩: 指导教师签名: 批阅日期:
展开阅读全文