




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程实验报告学生姓名王稼骏学 号49班 级指导老师实验名称栈、队列、递归程序设计实验成绩实验报告实验概述实验目的:编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。实验要求:(1)正确理解栈的先进后出的操作特点,建立初始栈,通过相关操作显示栈底元素。(2)程序中要体现出建栈过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作规则打印结果栈中的元素。实验基本原理:(1)采用顺序栈,即用数组存储栈元素。(2)设定一个临时队列,用来存放从初始栈中出栈的元素。(3)取出栈底元素后,将队列中的元素逐一出队并压入初始栈中。实验内容实验设计思路、步骤和方法等:(1) 根据栈的先进后出特点,来进行实验(2) 建立顺序栈、临时队列、依次取出压入栈实验过程(实验中涉及的记录、数据、分析):#include #include #define MaxSize 100typedef int ElemType;typedef struct ElemType dataMaxSize; int top; SeqStack; typedef struct ElemType dataMaxSize; int front,rear; SeqQueue; void InitStack(SeqStack *s);int StackEmpty(SeqStack *s);int StackFull(SeqStack *s);void Push(SeqStack *s,ElemType x);ElemType Pop(SeqStack *s);ElemType GetTop(SeqStack *s);void DispStack(SeqStack *s);void DispBottom(SeqStack *s);void InitQueue(SeqQueue *sq);int QueueEmpty(SeqQueue *sq);void InQueue(SeqQueue *sq,ElemType x);ElemType OutQueue(SeqQueue *sq,ElemType x); ElemType GetQueue(SeqQueue *sq)void main() SeqStack *s; SeqQueue *sq; ElemType x; int n,i; printf(1)初始化栈sn); s=(SeqStack *)malloc(sizeof(SeqStack); InitStack(s); printf(2)栈为%sn,(StackEmpty(s)?空:非空); printf(3)输入要进栈的数据个数:); scanf(%d,&n);printf(依次输入进栈的%d个整数:,n); for(i=0; itop=-1;int StackEmpty(SeqStack *s) if(s-top=-1) return 1; else return 0; /*否则返回0 */int StackFull(SeqStack *s) if(s-top=MaxSize-1) return 1; else return 0; void Push(SeqStack *s,ElemType x) if (StackFull(s) printf(栈满溢出错误!n); exit(1); s-top+; s-datas-top=x;ElemType Pop(SeqStack *s) if(StackEmpty(s) printf(栈下溢错误!n); exit(1); s-top-; return s-datas-top+1;ElemType GetTop(SeqStack *s) if(StackEmpty(s) printf(栈下溢错误!n); exit(1); return s-datas-top;void DispStack(SeqStack *s) int i; for(i=s-top; i=0; i-) printf(%d ,s-datai); printf(n);void DispBottom(SeqStack *s) printf(%d ,s-data0); printf(n);void InitQueue(SeqQueue *sq) sq-front=sq-rear=0;int QueueEmpty(SeqQueue *sq) if(sq-rear=sq-front) return 1; else return 0;void InQueue(SeqQueue *sq,ElemType x) if (sq-rear+1)%MaxSize=sq-front) printf(循环队列已满!n); exit(1); sq-datasq-rear=x; sq-rear=(sq-rear+1)%MaxSize; ElemType OutQueue(SeqQueue *sq,ElemType x) if(QueueEmpty(sq) /*队空*/ printf(循环队列已空,不能进行出队操作!n); exit(1); else x=sq-datasq-front; sq-front=(sq-front+1)%MaxSize; return x; ElemType GetQueue(SeqQueue *sq) if(QueueEmpty(sq) printf(队列已空,不能进行出队操作!n); exit(1); return sq-datasq-front;实验结果:(1) 初始化栈(2) 栈为空(3) 输入要进栈的数据个数为5,依次输入进栈的5个整数:1 2 3 4 5(4) 栈为非空(5) 从栈顶到栈底的元素依次为:5 4 3 2 1(6) 栈底元素为:1(7) 初始化队列为:1(8) 队列为空(9) 出栈/入队的元素依次为: 5 4 3 2 1 (10) 栈为空,队列为空(11) 出队/进栈的元素依次为:5 4 3 2 1(12) 栈为非空,队列为空(13) 从栈顶到栈底的元素依次为:1 2 3 4 5(14) 栈底元素为:5实验小结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年贵州云岩区第十六幼儿园教师招聘考试试题(含答案)
- 2025年大连市属国有企业招聘考试笔试试题(含答案)
- 2024年体育教师编制考试体育专业基础知识必考题库和答案
- 2025中药治疗执业药师继续教育试题及参考答案
- 2024新 公司法知识竞赛题库与答案
- 120急救考试题及答案
- 2024年公路养护工、检修工职责技能及理论知识考试题与答案
- 脑卒中吞咽障碍护理技能培训试题及答案
- 标准化沟通课件
- 化肥品牌知识培训课件
- 2025年内河船员考试(船舶辅机与电气2203·一类三管轮)历年参考题库含答案详解(5套)
- 农村土地确权课件
- 2024年黔西南州畅达交通建设运输有限责任公司招聘考试真题
- (高清版)T∕CES 243-2023 《构网型储能系统并网技术规范》
- 公共场所卫生管理员安全教育培训手册
- 2025年全国高校辅导员素质能力大赛基础知识测试题及答案(共3套)
- 财政分局对账管理制度
- 2025年河南省中考历史试卷真题(含答案)
- 标准预防与手卫生
- 工程量计算培训课件
- 20G361预制混凝土方桩
评论
0/150
提交评论