实验报告,,栈范文_第1页
实验报告,,栈范文_第2页
实验报告,,栈范文_第3页
全文预览已结束

下载本文档

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

文档简介

1、实验报告,栈范文 数学与计算机科学系实验报告 课程:数据结构 地点:实验室 时间: xx 年 11 月 23 日 学生姓名 班级 学号 成绩 组别 第一组 同组姓名 仪器编号 实验工程 栈 实验 指导教师 实验目的 掌握 栈 的根本操作 实验要求 栈的定义方法 根本操作算法 应用 实验环境 硬件:计算机 软件:windows xp, c 实验内容及实验结果 请写出具体的实验步骤,并给出相应的实验结果,附上编写的程序及其运行结果截图! 结果截图: 技术原理: 一、关于栈:是限定只能在表的一端进行插入和删除操作的线性表;存储满足后进先出 (lifo )。 栈分顺序栈和链栈。对于链栈栈底就是链表的最

2、后一个结点,栈顶总是链表的第一个结点。 二、对链栈的操作: 1. 只能在链表头部进行操作 2. 表示同线性表 3. 头指针- 栈顶指针 空栈 s.top=s.base pusha ,s.top+ 压入元素 pop (),s.top- s.base 始终指向栈底 s.abse=null 表示栈结构不存在 s.top=0 表示栈空 s.top 始终指向栈顶元素的下一个位置 三、 实验步骤: 源程序: #include #include #define stackinitsize 100 #define stackincrement 10 #define ok 1 #define error 0 #

3、define overflow -1 typedef struct int *base; int *top; int stacksize; sqstack; / 对栈进行初始化 int initstack(sqstack &s) s.base=(int *)malloc(stackinitsize*sizeof(int); if(!s.base) exit(overflow); s.top=s.base; s.stacksize=stackinitsize; return ok; / 进栈 int push(sqstack &s,int e) if(s.top-s.base&g

4、t;=s.stacksize) s.base=(int *)realloc(s.base,(s.stacksize+stackincrement)*sizeof(int); if(!s.base) exit(overflow); s.top=s.base+s.stacksize; s.stacksize=s.stacksize+stackincrement; *s.top=e; *s.top+; return ok; / 出栈 int pop(sqstack &s,int &e) if(s.base=s.top) return error; e=*(s.top-1); *s.t

5、op-; return ok; / 打印栈中元素 int printstack(sqstack s) if(s.base=s.top) printf(" 空栈n"); return ok; else printf(" 栈内容是: "); for(;s.base!=s.top;s.base+) printf("%d ",*s.base); return ok; int main() sqstack s; if(initstack(s) printf(" 初始化栈成功n"); for(;) printf("n

6、 请选择要进行的操作:n"); printf("1 进栈 2 出栈 n3 打印 0 退出n"); int select; scanf("%d",&select); if(select=0) break; switch(select) case 0: break; case 1: int pushelem; printf(" 输入要进栈的元素: "); scanf("%d",&pushelem); if(push(s,pushelem) printf(" 进栈成功n"); else printf(" 进栈失败n"); break; case 2: int e; if(pop(s,e) printf(" 元素 %d 出栈n",e); else printf(" 出栈失败n"); break; case 4: if(printstack(s) printf(" 打印完毕n"); break; default: printf(&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论