




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告PAGE郑州轻工业学院郑州轻工业学院《数据结构》课程实验实验报告题目:顺序栈的基本操作及c语言实现专业:信息管理与信息系统班级:11-01姓名:高博文完成日期:2013/5/23试验内容用c语言实现顺序栈的入栈出栈,取栈顶元素等操作二、试验目的掌握顺序栈的基本操作,以及主控菜单的设计,为系统设计打基础。三.源程序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#defineOVERFLOW-1#defineOK1#defineERROR0typedefintStatus;#defineSTACK_INIT_SIZE10#defineSTACK_INCREMENT2typedefintSElemType;//栈的顺序存储结构typedefstructSqStack{ SElemType*base; SElemType*top; intstacksize;}SqStack;StatusInitStack(SqStack&s){//初始化栈 s.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));//申请连续的存储空间 if(!s.base) exit(OVERFLOW); s.top=s.base;//栈顶指针指向基地址s.stacksize=STACK_INIT_SIZE;//申请空间的大小 returnOK;}StatusPush(SqStack&s,SElemTypee){//插入e为新的栈顶元素 if(s.top-s.base>=s.stacksize){//栈已满,申请更大的存储空间 s.base=(SElemType*)realloc(s.base,(s.stacksize+STACK_INCREMENT)*sizeof(SElemType)); if(!s.base)//没有更大的存储空间,返回出错信息 exit(OVERFLOW); s.top=s.base+s.stacksize;//栈顶指针指向新空间的栈顶元素 s.stacksize+=STACK_INCREMENT;//新空间的大小 } *(s.top)++=e;//插入元素e为栈顶元素,同时栈顶指针后移 returnOK;}StatusGetPop(SqStack&S,SElemType&e)//取栈顶元素操作{//若栈不空,则由e返回栈顶元素,并返回ok,否则返回ERROR if(S.top==S.base)returnERROR; e=*(S.top-1); returnOK;}StatusPop(SqStack&S,SElemType&e){//出栈算法 //若栈不空,则删除S的栈顶元素, //用e返回其值,并返回OK; //否则返回ERRORif(S.top==S.base)returnERROR;e=*--S.top; //先将栈顶指针指向当前栈顶元素,并将其赋给ereturnOK;}voidStackTraverse(SqStacks){//输出栈中元素 SElemType*q=s.base; while(s.top>q) printf("%d",*(q++)); printf("\n");}voidmain(){ SqStacks;intn,i,e; InitStack(s); if(InitStack(s)) printf("初始化成功\n"); else printf("初始化失败\n"); while(1) { printf("\n选择要进行的操作:\n"); printf("1插入2取栈顶元素3出栈4.输出0退出\n"); intselect; scanf("%d",&select); if(select==0) break; switch(select){case1: printf("请输入栈的长度n\n"); scanf("%d",&n); printf("请输入%d个数据\n",n); for(i=1;i<=n;i++){ scanf("%d",&e); Push(s,e);//入栈 }break; case2: GetPop(s,e); printf("栈顶元素为:%d\n",e); break; case3:Pop(s,e);break;case4:StackTraverse(s);//栈的遍历break;case0: break; }}}运行结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育政策的绩效评估与影响研究试题及答案
- 机电工程考试案例汇编与试题及答案
- 软件设计师考试成功之路试题与答案
- 数据通讯基础试题及答案
- 2024年中成药制药生产线资金筹措计划书代可行性研究报告
- 机电工程各章节核心要点的试题及答案
- 嵌入式开发中的常见问题试题及答案
- 西方政治制度改革试题及答案
- 机电工程服务与管理试题及答案
- 西方政治制度在民族理解与和谐社会建设中的作用试题及答案
- 2024年高校教师岗前培训《高等教育学》题目100道附答案(综合题)
- 办公室安全事故分析
- 海氏岗位价值评估法教程、数据表及案例解析
- 高考安保工作总结
- 天堂旅行团读书分享
- 23秋国家开放大学《视觉设计基础》形考任务1-5参考答案
- 急性胰腺炎护理常规课件
- 2023淄博中考英语试题及答案
- 高考前最后一课-数学
- 第五章-第四种检查器的使用
- 班组精细化管理学习体会
评论
0/150
提交评论