



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
栈操作1 题目 编写一个程序,实现顺序栈的各种基本算法,包括:栈操作:初始化栈、判断栈s是否非空、输出栈长度、释放栈栈元素操作:压栈、出栈2 目标 熟悉栈的定义及其基本操作的实现3 设计思想考虑到顺序栈受空间的限制较大,因此选择建立链栈,在结点定义的结构体中包含两个元素,数据和指向下一个结点的next指针。栈的特点是先入后出,进栈出栈都在一端进行,因此只需对栈顶结点进行操作就能实现压栈出栈操作,头结点用来存放长度,对头结点进行操作能实现判空、求长等操作。4 算法描述(1) 初始化栈:申请结点空间,初始化数据为0,next指针为null。(2) 判断s是否为空:头结点next指针为NULL,返回1,否则返回0。(3) 输出栈长度:返回头结点数据值。(4) 释放栈:从头结点开始,沿next指针向后逐个释放结点,直到next指向空。(5) 压栈:新申请结点,存入数据值,next赋值为NULL,修改当前栈顶结点的next指针指向新加结点,栈底结点计数器加一。(6) 出栈:保存待删除结点数据值,修改其前一个结点的next指针为null,释放删除结点,栈底的计数器减一。5 程序结构图主程序main初始化栈s InitStack(SqStack *&s)释放栈s ClearStack (SqStack *&s)判断栈s是否为空StackEmpty(SqStack *s)求栈s的长度StackLength(SqStack *s)出栈一个元素Pop(SqStack *&s ,ElemType &e)取栈顶元素GetTop(SqStack *s ,ElemType &e)进栈一个元素Push(SqStack *&s ,ElemType &e)从栈顶到栈底输出元素底DispStack(SqStack *s)6 源程序#include #include #define ERROR 0typedef struct LNodeint data;struct LNode *next;LNode,*LinkStack;LinkStack InitStack(LinkStack S)S=(LinkStack)malloc(sizeof(LNode);S-data = 0;S-next = NULL;return S;void ClearStack(LinkStack S)LinkStack f = S;while(S)S = S-next;free(f);f = S;int StackEmpty(LinkStack S)if( S-next = NULL )return 1;elsereturn 0;int StackLength(LinkStack S)return S-data;void Push(LinkStack S)int e;LinkStack p=(LinkStack)malloc(sizeof(LNode);printf(n请输入要压入栈的元素的值: );scanf(%d,&e);p-data = e;p-next = S-next;S-next = p;S-data+;printf(元素 %d 已压入栈!,e);int Pop(LinkStack S)if(StackEmpty(S)printf(栈为空);return 0;int e;LinkStack f = S-next;e = f-data;if(!StackEmpty(S)S-next = S-next-next;free(f);S-data-;printf(n出栈元素的值为: %d ,e);elseprintf(n栈为空n);void DispStack(LinkStack S)LinkStack p = S-next;if(!StackEmpty(S)while(p)printf( %d n,p-data);p = p-next;elseprintf(n栈为空);int GetTop(LinkStack S) if(S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件比例设置
- 螃蟹谜语导入课件
- 许愿荷花灯课件
- 体智能新人培训大纲
- 课件标题设置颜色的目的
- 快乐的派对课件
- 礼仪考试题及答案中职
- 2025年中国汽车雾灯灯具数据监测研究报告
- 客运中心考试题及答案
- 科学防疫考试题及答案
- 肾盂癌护理常规
- GB/T 4798.4-2023环境条件分类环境参数组分类及其严酷程度分级第4部分:无气候防护场所固定使用
- (小鼠)常用实验动物生物学特点及其在生物医学教程课件
- 同济大学(内部使用)核心学术刊物基本目录
- 抗菌药物分级管理办法
- GB/T 9269-2009涂料黏度的测定斯托默黏度计法
- 企业突发环境事件隐患排查与治理工作指南课件
- 小区门岗值班登记表
- 《计算机操作系统(第4版)》配套教学课件
- 哈尔滨市城市规划管理技术规定
- 大学语文课件(完整版)
评论
0/150
提交评论