




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 栈一、实验目的 1.了解栈的特性。 2.掌握栈的顺序表示和实现。 3.掌握栈的链式表示和实现。二、实验内容 实验2.1栈的顺序表示和实现 编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化顺序栈。 (2)插入元素。 (3)删除栈顶元素。 (4)取栈顶元素。 (5)遍历顺序栈。 (6)置空顺序栈。 实验2. 2栈的链式表示和实现 编写一个程序实现链栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化链栈。 (2)链栈置空。 (3)入栈。 (4)出栈。 (5)取栈顶元素。 (6)遍历链栈。 顺序栈#include#include#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef structint *base;int *top;int stacksize;SqStack;int InitStack(SqStack &S)S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int);if(!S.base)exit(0);S.top=S.base;S.stacksize=STACK_INIT_SIZE;return 0;/初始化顺序栈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(0);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;*S.top+=e;return 0;/插入元素eint Pop(SqStack &S,int e)if(S.top=S.base)return 0;e=*-S.top;printf(删除的栈顶元素%5d,e);printf(n);return 0;/删除栈顶元素eint Gettop(SqStack &S,int e)if(S.top=S.base)return 0;e=*(S.top-1);printf(返回的栈顶元素%5d,e);printf(n);return 0;/返回栈顶元素evoid PrintStack(SqStack &S) int *k; printf(顺序栈中的元素:n); for(k=S.base;k!=S.top;k+)printf(%5d,*k); printf(n);/遍历顺序栈void ClearStack(SqStack &S)S.top=S.base;/置空顺序栈void main()int e,i,n; SqStack S;InitStack(S);printf(1插入顶元素;2删除顶元素;3返回顶元素;4置空顺序栈;0结束运行n); printf(n);printf(n);printf(n); printf(n);printf(n); printf(选择: ); scanf(%d,&n);printf(n);printf(n); while(n!=0) switch(n) case 1:printf(插入栈顶元素);scanf(%d,&e);Push(S,e);PrintStack(S);printf(n);printf(n);break;case 2:Pop(S,e);PrintStack(S);printf(n);printf(n);break;case 3:Gettop(S,e);printf(n);printf(n);break;case 4:printf(已置空顺序栈);ClearStack(S);printf(n);printf(n);break; printf(选择: );scanf(%d,&n);printf(n);printf(n); printf(结束运行。再见!n);链式栈#include#includetypedef struct SNode int data; struct SNode *next;SNode,*Stack;typedef structStack top;int length;SqStack;/定义链式栈的结构体int InitStack(SqStack &S)S.top=NULL;S.length=0;return 0;/初始化链式栈int Push(SqStack &S,int e)Stack p;p=(Stack)malloc(sizeof(SNode);if(!p)exit(0);p-data=e;p-next=S.top;S.top=p;S.length+;return 0;/插入元素eint Pop(SqStack &S)if(!S.top)return 0;elseStack q;q=S.top;S.top=S.top-next;-S.length;free(q); return 0;/删除栈顶元素eint GetTop(SqStack &S)if(!S.top)return 0;elseprintf(返回栈顶元素%5dn,S.top-data);return 0;/返回栈顶元素int PrintStack(SqStack &S)Stack p;printf(链式队列中的元素);p=S.top;if(S.top!=NULL)while(p!=NULL)printf(%5d,p-data);p=p-next;elseprintf(队列为空n);printf(n);return 0;/遍历链式栈int ClearStack(SqStack &S)S.top=NULL;printf(已置空链式栈);printf(n);return 0;/置空链式栈void main()SqStack S;int e,m;printf(n);printf(n);printf(n);printf(n);printf(1插入元素;2删除元素;3返回栈顶元素4置空链式栈0结束运行n);printf(n);printf(n);printf(n);InitStack(S); printf(n);printf(n);printf(选择: ); scanf(%d,&m);printf(n);printf(n); while(m!=0) switch(m) case 1:printf(插入元素:);scanf(%d,&e);Push(S,e);PrintStack(S);printf(n);printf(n);break;case 2:Pop(S);PrintStack(S);printf(n);printf(n);break;case 3:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CAPMA 5-2018熟狐皮质量检验
- 匀富尚品java面试题及答案
- 公共医疗面试题及答案
- 翻译助力面试题及答案
- 人的管理课件
- T/CADBM 69-2023环氧卷材地板
- 公寓转租三方合同范本
- 小区玻璃破碎补偿协议书
- 安徽大型吊车租赁协议书
- 厂区景观工程合同范本
- 初中数学思维训练120讲
- GB/T 462-2023纸、纸板和纸浆分析试样水分的测定
- 回转窑回转滚筒干燥机使用说明书
- 2023年四川省成都市中考历史试卷附答案解析
- 第四节 石油资源与国家安全
- 2023年广东初中学业水平考试生物试卷真题(含答案)
- 2023年全国统一高考政治试卷(新课标ⅰ)(含解析版)
- 新课程标准2022版综合实践
- 2023年浙江夏季世界少年思维研学“丁一杯”五年级数学模拟卷(一)含答案
- 260吨(t)吊车性能参数
- 超星学习通中华传统文化之文学瑰宝(同济大学)章节答案
评论
0/150
提交评论