实验七:顺序栈的基本操作

实验七:顺序栈的基本操作

ID:30863800

大小:89.08 KB

页数:5页

时间:2019-01-03

实验七:顺序栈的基本操作_第1页
实验七:顺序栈的基本操作_第2页
实验七:顺序栈的基本操作_第3页
实验七:顺序栈的基本操作_第4页
实验七:顺序栈的基本操作_第5页
资源描述:

《实验七:顺序栈的基本操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告课程名称:项目名称:顺序栈的基本操作姓名:—专业:—班级:—学号:—同组成员无一、实验准备1.实验目的掌握顺序栈的基木操作。(1)顺序栈的初始化;(2)读栈顶元素;(3)空栈的判定;(4)入栈;(5)出栈。2.实验环境VisualC++软件二、实验过程记录冬■实验任务:通过栈结构,将从键盘输入的字符串逆置输出。从键盘上输入:abcdef程序输出:fedcba

2、注:1、实验准备部分包括实验环境准备和实验所需知识点准备。2、若是单人单组实验,同组成员填无。2注:实验过程记录要包含实验H的、实验原理、实验步骤,页码不够町自行添加。■步骤1、顺序栈的建立(1)顺序栈的类型定义。(

3、2)栈的初始化。2、字符串的输入(1)按字符逐个入栈(注意判断内存是否溢出)。(2)可通过while等循环语句,结合getchar()实现。3、字符串的输出(1)按字符逐个出栈(注意判定栈是否为空)。(2)可通过while等循环语句,结合putchar()实现。■测试结果参考贰*E:VC_»orkspaceDebugstack25.exe*请输入原字符串:ytisreuinUiVuW找顶兀素:岸符串逆置输岀:Wu?iUniversityPressanykeytocontinue程序:#include#include#defineMAX_S

4、TACK120〃栈的最大数据元素数口typedefstructstack)charitemLMAX_STACKJ;〃存放栈屮数据元素的存储单元inttop;〃栈顶指针}STACK;voidINitStack(STACK*S)S->top=-l;}intStackEmpty(STACK*S)〃判断栈是否为空{讦(S->top==-1)retuni1;elsereturn0;}voidGetTop(STACK*S,int*item)〃获取栈顶元素{if(StackEmpty(S)){printf("Stackisemptyu);return;}else*item=S->item[S

5、->topJ;}STACK*Push(STACK*S,charitem)〃入栈{讦(S->top==MAX_STACK-1){printfC'StackisfullH);returnNULL;)elseS->itemL++S->topJ=item;returnS;}STACK*Pop(STACK*S,int*item)〃出栈{讦(StackEmpty(S)){printfC'Stackisemptyu);returnNULL;}else*item=S->item[S->top—J;returnS;}voidPrint(STACK*S)inti;for(i=0;i<=S->t

6、op;i++)printf("%c",S->item[i]);printf(MM);}voidmain(){structstack*S=(structstack*)malloc(sizeof(structstack));charch;INitStack(S);printfC*请输入原字符串:”);while((ch=getchar())!=,)〃入栈{Push(S,ch);}printfC,栈顶元素为:”);GetTop(S,&ch);putchar(ch);printf(Hn);printfC*字符串逆置输出:”);while(!StackEmpty(S))〃出栈{P

7、op(S,&ch);putchar(ch);}putcharC/Xn');}结果:从键盘上输入:abcdef程序输出:fedcba实验报告成绩(百分制)实验指导教师签字:3注:1、实验小结应包含实验所需知识点和实验方法的总结,实验心得体会等。2、分组实验需包含同组讨论内容。

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

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

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