2023年数据结构实验报告11.pdf

上传人:无*** 文档编号:90871810 上传时间:2023-05-18 格式:PDF 页数:10 大小:425.61KB
返回 下载 相关 举报
2023年数据结构实验报告11.pdf_第1页
第1页 / 共10页
2023年数据结构实验报告11.pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2023年数据结构实验报告11.pdf》由会员分享,可在线阅读,更多相关《2023年数据结构实验报告11.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据结构实验报告一一实验5学号:姓名:得分:一、实验目的1、复习栈的逻辑结构、存储结构及基本操作;2、掌握顺序栈、链栈。二、实验内容1、(必做题)假设栈中数据元素类型是字符型,请采用顺序栈实现栈的以下基本操作:(1)S t a t us I ni t S t a ck(&S)/构造空栈 S;(2)St a tus Pus h(&S,e)元素 e 入栈 S;(3)S t a t u s Pop(&S,&e)栈 S 出栈,元素为 e。2、(必做题)请实现:对于一个也许涉及括号 、()的表达式,鉴定其中括号是否匹配。三、算法描述(采用自然语言描述)1.构 建 空 栈 S,输入元素,将元素依次入栈,遍

2、历打印栈中元素,输出栈顶元素,打印被输出的元素,遍历打印栈中元素。2.构建空栈,输入表达式,使用函数c oun t 判断表达式中括号是否匹配,假如匹配输出匹配对的,不匹配则输出匹配错误。四、具体设计1.2.构 建 空 桂 五、程序代码(给出必要注释)1.#inc 1 u d e#include#d e fi n e M a xSize 1 00t y p edef st r u c t node*S q S t a c k;typedef c h ar E 1 emTy p e;s t ruct n od e/栈的数据结构(int top;El e mTyp e dataMa x Size;)

3、;voi d Statusin i tS t ack(SqS t ack*L)/构造空栈 S(*L)=(SqSt a c k*)malloc(s i z eof(SqS t a c k);(*L)to p=-1;)voi d S tatu s P u s h(S q S ta c k L,ElemType e)元素 e 入栈 S(if(L-t op=Ma x Size-1)(pr i nt f(栈满n”);e IseL-to p+;L-da t a L-t op=e;void St a t u sPop(S q S tac k L,E lemTyp e*e)栈 S 出栈,元素为 e(i f(L

4、-t o p=-1)(printf(栈空 n”);)e 1 se(*e=L-d a ta L-top;L-top-;)void P rini(S qS tackL)遍历输出(int i=0;f o r(i=0;i top;i+)(print f(c”,L-d ata i );prin t f(nn”);i nt m a in()SqStac k s;ElemType e;E lemT y pe*y;y=&e;S t a t u slni t S tac k(&s);p r i n tf(输入入栈数据:“);scan f(n%cn,&e);wh i 1 e(e!=n)(S t at u sPus

5、h(s,e);scanf(n%c,&e);)p rintf(n目前栈中元素为:n);Pr i nt(s);Sta t u s Po p(s,y);p r in t f(n 出栈元素是:c n,*y);prin t f(”n栈顶元素出栈后,栈为:n n);Print(s);)2.#include#incl u de#i nclu d e#define ST A C K _I NIT_S I ZE 10#defin e STACK_GRO W _SIZE5#def i ne ELEMTYPE chart y p e def s t r u ct/*建立一个栈的首结点*/(ELEMT Y PE*ba

6、 s e;ELEMTYPE*top;i n t st a ck s i ze;SpStack;int I n i t Stack(SpS t ack*s)/*建立空的栈并返回首地址*/s-b a s e=(ELEMTYPE*)m a lloc(STACKJNIT_SIZE*s i zeo f(ELEMTYPE);i f(!sbase)ret u rn 0;s-to p=s-b ase;s-stac k s i ze=STACK_INI T _SIZ E;ret u rn 1;)int Stack E mp t y(S p Stack*s)/*判断栈是否为空*/(i f(s-to p=s-b a

7、 s e)return 1;e Ise ret u rn 0;int P u sh(SpStack*s,ELEMT Y P E e)/*往栈顶插入元素即进栈*/if(s-t ops-base=s-st a c ksi z e)/*判断是否栈满*/(s-b a s e=(ELEM T YP E*)realloc(s-b a s e ,(s-stack s iz e+S T ACGROW_SIZE)*sizeo f(ELEMTYPE);if(!s-b a se)return 0;s-s t acksize+=STACK_GROW_S I ZE;s-to p=s-ba s e+s-st a cksi

8、ze;)*s-top+=e;r eturn 1;)int Pop(SpStac k*s,E L E M T Y P E*e)/*让栈顶元素依次输出即出栈*/(if(StackEmp t y(s)r e turn 0;*e=*(s-top);return 1;)int Cou n t(S p S ta c k*s)(ELEM TYPE eSTAC K _IN I T _ S I ZE*2 ;ELEMTYPEel;int i;I nitSt a ck(s);ge t s(e);i f C n=e strlen(e)-1 )e str 1 e n(e)-1=0;for(i=0;ei!=0,;i+)(

9、switch(e i)(c a s e:ca s e,:c ase Pus h(s,e i);b r ea k;casecase T:case:i f(StackE m pty(s)(P rin tf(匹配错误n”);retur n 0;)e Ise Po p(s,&el);b re a k;)if(StackEmpty(s)printf(匹配对的n);ret u m 1;else(printf(匹配错误 n );retur n 0;)in t main()(SpS t ack s;p rin tf(”请输入一个也许涉及括号 、口、()的表达式n);Coun t(&s);f r ee(s.b a s e);return 0;六、测试和结果(给出测试用例,并给出测试结果)输入入栈数据:dhdjff目前栈中元素为:dhdjff出栈元素是:f栈顶元素出栈后,栈为:dhdjfI请输入一个可能包括括号 、口、。的表达式()匹配正确七、用户手册(告诉用户如何使用程序,使用注意事项等)1.第二个程序输入时需注意表达式不得长于1 0个单位;2.第一个程序输入时需注意表达式不得长于1 0 0个单位;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁