数据结构实验报告书5

数据结构实验报告书5

ID:41097992

大小:67.50 KB

页数:8页

时间:2019-08-16

数据结构实验报告书5_第1页
数据结构实验报告书5_第2页
数据结构实验报告书5_第3页
数据结构实验报告书5_第4页
数据结构实验报告书5_第5页
资源描述:

《数据结构实验报告书5》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据结构实验报告——实验5学号:姓名:得分:______________一、实验目的1、复习栈的逻辑结构、存储结构及基本操作;2、掌握顺序栈、链栈。二、实验内容1、(必做题)假设栈中数据元素类型是字符型,请采用顺序栈实现栈的以下基本操作:(1)StatusInitStack(&S)//构造空栈S;(2)StatusPush(&S,e)//元素e入栈S;(3)StatusPop(&S,&e)//栈S出栈,元素为e。2、(必做题)请实现:对于一个可能包括括号{}、[]、()的表达式,判定其中括号是否匹配。三、算法描述(采用自然语言描述)1.构建空栈s,输入元素,将元素依次入栈,遍历打印栈中元

2、素,输出栈顶元素,打印被输出的元素,遍历打印栈中元素。2.构建空栈,输入表达式,使用函数count判断表达式中括号是否匹配,如果匹配输出匹配正确,不匹配则输出匹配错误。四、详细设计1...打印被输出的元素遍历打印栈中元素开始构建空栈s将元素依次入栈输出栈顶元素结束输入元素遍历打印栈中元素2.输出匹配错误使用函数count判断表达式中括号是否匹配开始构建空栈s结束输入表达式输出匹配正确五、程序代码..(给出必要注释)1.#include#include#defineMaxSize100typedefstructnode*SqStack;typedefc

3、harElemType;structnode//栈的数据结构{inttop;ElemTypedata[MaxSize];};voidStatusInitStack(SqStack*L)//构造空栈S{(*L)=(SqStack*)malloc(sizeof(SqStack));(*L)->top=-1;}voidStatusPush(SqStackL,ElemTypee)//元素e入栈S{if(L->top==MaxSize-1){printf("栈满");}else{L->top++;L->data[L->top]=e;}}voidStatusPop(SqStackL,ElemTy

4、pe*e)//栈S出栈,元素为e{if(L->top==-1){..printf("栈空");}else{*e=L->data[L->top];L->top--;}}voidPrint(SqStackL)//遍历输出{inti=0;for(i=0;i<=L->top;i++){printf("%c",L->data[i]);}printf("");}intmain(){SqStacks;ElemTypee;ElemType*y;y=&e;StatusInitStack(&s);printf("输入入栈数据:");scanf("%c",&e);while(e!=''){Stat

5、usPush(s,e);scanf("%c",&e);}printf("目前栈中元素为:");Print(s);StatusPop(s,y);printf("出栈元素是:%c",*y);printf("栈顶元素出栈后,栈为:");Print(s);..}2.#include#include#include#defineSTACK_INIT_SIZE10#defineSTACK_GROW_SIZE5#defineELEMTYPEchartypedefstruct/*建立一个栈的首结点*/{ELEMTYPE*b

6、ase;ELEMTYPE*top;intstacksize;}SpStack;intInitStack(SpStack*s)/*建立空的栈并返回首地址*/{s->base=((ELEMTYPE*)malloc(STACK_INIT_SIZE*sizeof(ELEMTYPE)));if(!s->base)return0;s->top=s->base;s->stacksize=STACK_INIT_SIZE;return1;}intStackEmpty(SpStack*s)/*判断栈是否为空*/{if(s->top==s->base)return1;elsereturn0;}intPush(

7、SpStack*s,ELEMTYPEe)/*往栈顶插入元素即进栈*/{if(s->top-s->base>=s->stacksize)/*判断是否栈满*/{s->base=((ELEMTYPE*)realloc(s->base,(s->stacksize+STACK_GROW_SIZE)*sizeof(ELEMTYPE)));if(!s->base)return0;..s->stacksize+=STACK_GROW_SIZE;s-

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

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

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