岗位职责 实施方案 自查报告 整改措施 先进事迹材料 应急预案 工作计划 调研报告 调查报告 工作汇报 其他范文
首页 > 其他范文 > 其他范文

实验报告,-,栈

作者:fengyajingzhu时间:2020-12-16 下载本文

数学与计算机科学系实验报告 课程:数据结构 地点:实验室 时间:

2012 年 11 月 23 日 学生姓名 班级 学号 成绩 组别 第一组 同组姓名 仪器编号 实验项目 栈 实验 指导教师 实验目的 掌握 栈 的基本操作 实验要求 栈的定义方法 基本操作算法 应用 实验环境 硬件:计算机 软件:windows XP, C 实验内容及实验结果 请写出具体的实验步骤,并给出相应的实验结果,附上编写的程序及其运行结果截图!结果截图:

技术原理:

一、关于栈:是限定只能在表的一端进行插入和删除操作的线性表;存储满足后进先出(LIFO)。

栈分顺序栈和链栈。对于链栈栈底就是链表的最后一个结点,栈顶总是链表的第一个结点。

二、对链栈的操作:

1.只能在链表头部进行操作 2.表示同线性表 3.头指针--栈顶指针 空栈 s.top==s.base push’A’ ,s.top++ 压入元素 pop(),s.top--s.base 始终指向栈底 s.abse==NULL 表示栈结构不存在 s.top==0 表示栈空 s.top 始终指向栈顶元素的下一个位置 三、实验步骤:

源程序:

#include #include #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define OK 1 #define ERROR 0 #define OVERFLOW-1 typedef struct{ int *base;int *top;

int stacksize;}sqstack;// 对栈进行初始化 int initstack(sqstack &s){ s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));if(!s.base)exit(OVERFLOW);s.top=s.base;s.stacksize=STACK_INIT_SIZE;return OK;} // 进栈 int push(sqstack &s,int e){ if(s.top-s.base>=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.top--;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 请选择要进行的操作: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(" 你进行了 错 误操作,请重新选择:n");break;} } return 1;} 实 实 验 验 心 心 得 得 教师评阅意见 教师签字 签字日期 年 年 月 日

栈和队列实验心得体会

药栈研发主任岗位职责

实验报告模板

J2EE实验报告

实验报告模版

《实验报告模版.docx》
实验报告模版
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
相关文章
猜你喜欢