数据结构实验报告5

数据结构实验报告5

ID:36992695

大小:65.50 KB

页数:7页

时间:2019-05-05

数据结构实验报告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、(必做题)请实现:对于一个可能包括括号{}、[]、()的表达式,判定其中括号是否匹配

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

3、.#include#include#defineMaxSize100typedefstructnode*SqStack;typedefcharElemType;structnode//栈的数据结构{inttop;ElemTypedata[MaxSize];};voidStatusInitStack(SqStack*L)//构造空栈S{(*L)=(SqStack*)malloc(sizeof(SqStack));(*L)->top=-1;}...voidStatusP

4、ush(SqStackL,ElemTypee)//元素e入栈S{if(L->top==MaxSize-1){printf("栈满");}else{L->top++;L->data[L->top]=e;}}voidStatusPop(SqStackL,ElemType*e)//栈S出栈,元素为e{if(L->top==-1){printf("栈空");}else{*e=L->data[L->top];L->top--;}}voidPrint(SqStackL)//遍历输出{inti=0;for(i

5、=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!=''){StatusPush(s,e);scanf("%c",&e);}printf("目前栈中元素为:");Print(s);StatusPop(s,y);pr

6、intf("出栈元素是:%c",*y);printf("栈顶元素出栈后,栈为:");Print(s);}2.#include#include#include#defineSTACK_INIT_SIZE10#defineSTACK_GROW_SIZE5#defineELEMTYPEchartypedefstruct/*建立一个栈的首结点*/{ELEMTYPE*base;ELEMTYPE*top;intstacksize;}SpSta

7、ck;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;}i

8、ntPush(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_SIZ

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

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

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