数据结构与算法问题分析及源代码之栈操作

上传人:文*** 文档编号:64366847 上传时间:2022-03-21 格式:DOC 页数:4 大小:21.50KB
收藏 版权申诉 举报 下载
数据结构与算法问题分析及源代码之栈操作_第1页
第1页 / 共4页
数据结构与算法问题分析及源代码之栈操作_第2页
第2页 / 共4页
数据结构与算法问题分析及源代码之栈操作_第3页
第3页 / 共4页
资源描述:

《数据结构与算法问题分析及源代码之栈操作》由会员分享,可在线阅读,更多相关《数据结构与算法问题分析及源代码之栈操作(4页珍藏版)》请在装配图网上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 栈操作1 题目 编写一个程序,实现顺序栈的各种基本算法,包括:栈操作:初始化栈、判断栈s是否非空、输出栈长度、释放栈栈元素操作:压栈、出栈2 目标 熟悉栈的定义及其基本操作的实现3 设计思想考虑到顺序栈受空间的限制较大,因此选择建立链栈,在结点定义的结构体中包含两个元素,数据和指向下一个结点的next指针。栈的特点是先入后出,进栈出栈都在一端进行,因此只需对栈顶结点进行操作就能实现压栈出栈操作,头结点用来存放长度,对头结点进行操作能实现判空、求长等操作。4 算法描述(1) 初始化栈:申请结点空间,初始化数据为0,next指针为null。(2) 判

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(

3、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 InitStac

4、k(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;Lin

5、kStack 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(StackEmpty(S)printf(栈顶为空);return 0;printf(n栈顶元素的值为: %d ,S-next-data);return S-next-data;4 / 4

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!