数据结构课程顺序栈实验报告_第1页
数据结构课程顺序栈实验报告_第2页
数据结构课程顺序栈实验报告_第3页
数据结构课程顺序栈实验报告_第4页
数据结构课程顺序栈实验报告_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构实验报告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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论