算法与数据结构课程设计--栈的应用

算法与数据结构课程设计--栈的应用

ID:35627053

大小:140.50 KB

页数:13页

时间:2019-04-03

算法与数据结构课程设计--栈的应用_第1页
算法与数据结构课程设计--栈的应用_第2页
算法与数据结构课程设计--栈的应用_第3页
算法与数据结构课程设计--栈的应用_第4页
算法与数据结构课程设计--栈的应用_第5页
资源描述:

《算法与数据结构课程设计--栈的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、栈的应用1、表达式求值#include"stdlib.h"#include"stdio.h"#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineNULL0#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedefintStatus;/*定义顺栈类型*/typedefcharSElemType1;typedefstruct{SElemType1*base;SElemTyp

2、e1*top;intStackSize;}SqStack;/*初始化顺栈*/StatusInitStack1(SqStack*S){(*S).base=(SElemType1*)malloc(STACK_INIT_SIZE*sizeof(SElemType1));if(!(*S).base)exit(OVERFLOW);(*S).top=(*S).base;(*S).StackSize=STACK_INIT_SIZE;returnOK;}/*清空顺栈*/voidClearStack1(SqStack*S){(*S).top=(*S).base;}/

3、*判断顺栈是否为空*/StatusStackEmpty1(SqStackS){if(S.top==S.base)wilyes11收集博客(与学习无关):http://blog.sina.com.cn/u/1810231802returnTRUE;elsereturnFALSE;}/*求顺栈长度*/intStackLength1(SqStackS){returnS.top-S.base;}/*取顺栈的栈顶元素(注意:形参表与课本有差别)*/SElemType1GetTop1(SqStackS){if(S.top==S.base)returnERROR

4、;return*(S.top-1);}/*入顺栈*/StatusPush1(SqStack*S,SElemType1e){if((*S).top-(*S).base>=(*S).StackSize){(*S).base=(SElemType1*)realloc((*S).base,((*S).StackSize+STACKINCREMENT)*sizeof(SElemType1));if(!(*S).base)exit(OVERFLOW);(*S).top=(*S).base+(*S).StackSize;(*S).StackSize+=STACK

5、INCREMENT;}*((*S).top)=e;(*S).top++;returnOK;}/*出顺栈*/StatusPop1(SqStack*S,SElemType1*e){if((*S).top==(*S).base)returnERROR;(*S).top--;*e=*((*S).top);returnOK;}/*定义链栈类型*/typedefintSElemType2;typedefstructSNode{SElemType2data;wilyes11收集博客(与学习无关):http://blog.sina.com.cn/u/1810231

6、802structSNode*next;}SNode,*SLinkStack;/*B2、初始化链栈*/StatusInitStack2(SLinkStack*S){(*S)=(SLinkStack)malloc(sizeof(SNode));if(!(*S))exit(OVERFLOW);(*S)->next=NULL;returnOK;}/*判断顺栈是否为空*/StatusStackEmpty2(SLinkStackS){if(!(S->next))returnTRUE;elsereturnFALSE;}/*取顺栈的栈顶元素*/SElemType

7、2GetTop2(SLinkStackS){if(StackEmpty2(S))returnERROR;returnS->next->data;}/*入链栈*/StatusPush2(SLinkStack*S,SElemType2e){SLinkStackp;p=(SLinkStack)malloc(sizeof(SNode));if(!p)exit(OVERFLOW);p->data=e;p->next=(*S)->next;(*S)->next=p;returnOK;}/*出链栈*/StatusPop2(SLinkStack*S,SElemTy

8、pe2*e){SLinkStackp;wilyes11收集博客(与学习无关):http://blog.sina.com.c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。