实验结构-实验二-栈的基本操作

实验结构-实验二-栈的基本操作

ID:42584411

大小:307.18 KB

页数:8页

时间:2019-09-18

实验结构-实验二-栈的基本操作_第1页
实验结构-实验二-栈的基本操作_第2页
实验结构-实验二-栈的基本操作_第3页
实验结构-实验二-栈的基本操作_第4页
实验结构-实验二-栈的基本操作_第5页
资源描述:

《实验结构-实验二-栈的基本操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构实验报告实验二:栈的基本操作姓名:周成学号:13083511专业:软件工程任课教师:马慧珠2013年12月05日1.实验名称:栈的基本操作2.实验目的:掌握栈的结构特点并熟悉栈的基本操作。3.实验要求:编程实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能(两个选一个):1.采用链式存储实现栈的初始化、判空、入栈、出栈操作。2.采用顺序存储实现栈的初始化、判空、入栈、出栈、求栈的长度操作。4.实验内容:整个算法就是先建立栈结点结构体,然后进行栈的基本操作,栈的判空,入栈,出栈,取栈顶

2、元素,求栈的长度,销毁栈以及栈的初始化。栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。对于顺序栈,入栈时,首先判断栈是否为满,栈满的条件为:p->top==MAXNUM-1,栈满时,不能入栈;否则出现空间溢出,引起错误,这种现象称为上溢。出栈和读栈顶元素操作,先判栈是否为空,为空时不能操作,否则产生错误。通常栈空作为一种控制转移的条件。注意:(1)顺序栈中元素用向量存放(2)栈底位置是固定不变的,可设置在向量两端的任意一个端点(3)栈顶位置是随着进栈和退栈操作而变化的,用一个整型量top(通常称to

3、p为栈顶指针)来指示当前栈顶位置5.实验程序代码及运行结果:源程序:#include"stdafx.h"#include#include#defineMAXNUM20#defineElemTypeint/*定¡§义°?顺3序¨°栈?的Ì?存ä?储ä¡é结¨¢构1*/typedefstruct{ElemTypestack[MAXNUM];inttop;}SqStack;/*初?始º?化¡¥顺3序¨°栈?*/voidInitStack(SqStack*p){if(!p)p

4、rintf("Eorror");p->top=-1;}/*入¨?栈?*/voidPush(SqStack*p,ElemTypex){if(p->toptop=p->top+1;p->stack[p->top]=x;}elseprintf("Overflow!");}/*出?栈?*/ElemTypePop(SqStack*p){ElemTypex;if(p->top!=0){x=p->stack[p->top];printf("以°?前¡ã的Ì?栈?顶£¤数ºy据Y元a素?%

5、d已°?经-被À?删¦?除y!ê?",p->stack[p->top]);p->top=p->top-1;return(x);}else{printf("Underflow!");return(0);}}/*获?取¨?栈?顶£¤元a素?*/ElemTypeGetTop(SqStack*p){ElemTypex;if(p->top!=0){x=p->stack[p->top];return(x);}else{printf("Underflow!");return(0);}}/*遍À¨¦历¤¨²顺

6、3序¨°栈?*/voidOutStack(SqStack*p){inti;printf("");if(p->top<0)printf("这a是º?一°?个?空?栈?!ê?");printf("");for(i=p->top;i>=0;i--)printf("第̨²%d个?数ºy据Y元a素?是º?:êo%6d",i,p->stack[i]);}/*置?空?顺3序¨°栈?*/voidsetEmpty(SqStack*p){p->top=-1;}/*主¡Â函¡¥数ºy*/intmain(){SqS

7、tack*q;inty,cord;ElemTypea;do{printf("");printf("第̨²一°?次ä?使º1用®?必À?须?初?始º?化¡¥!ê?");printf("");printf("主¡Â菜?单Ì£¤");printf("1初?始º?化¡¥顺3序¨°栈?");printf("2插?入¨?一°?个?元a素?");printf("3删¦?除y栈?顶£¤元a素?");printf("4取¨?栈?顶£¤元a素?");printf("5

8、置?空?顺3序¨°栈?");printf("6结¨¢束º?程¨¬序¨°运?行D");printf("--------------------------------");printf("请?输º?入¨?您¨²的Ì?选?择?(1,2,3,4,5,6)");scanf("%d",&cord);printf("");switch(cord){case1:{q=(SqStack*)malloc(sizeof(S

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

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

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