数据结构上机顺序栈建立

数据结构上机顺序栈建立

ID:38701003

大小:71.45 KB

页数:9页

时间:2019-06-17

数据结构上机顺序栈建立_第1页
数据结构上机顺序栈建立_第2页
数据结构上机顺序栈建立_第3页
数据结构上机顺序栈建立_第4页
数据结构上机顺序栈建立_第5页
资源描述:

《数据结构上机顺序栈建立》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.上机题目顺序栈的建立及基本操作实现,要求建立一个顺序栈,并且执行初始化、入栈、出栈、栈的清空、栈中元素计数等功能。2.需求分析本次程序设计要求建立一个顺序栈,并且执行初始化、入栈、出栈、栈的清空、栈中元素计数等功能。(1)输入形式为从键盘输入,用户根据界面的提示从键盘直接输入所对应的数即可。输入的值为正数或字符,用户输入其他的数据会产生错误。(2)系统按照用户输入的数据类型,将会把相应的输出结果显示到界面上。(3)测试:按照提示建立一个单链表,按照提示进行初始化、入栈、出栈、栈的清空、栈中元素

2、计数等操作测试程序是否正确。3.概要设计(1)数据结构定义:#include"stdio.h"#include"stdlib.h"#defineSTACK_INIT_SIZE10//存储空间初始分配量#defineSTACKINCREMENT2//存储空间分配增量#defineOVERFLOW-2#defineOK1#defineERROR0typedefintStatus;typedefcharSElemType;//定义栈元素类型(2)画出各模块之间的调用关系图。Main()()Int()St

3、atusListInsert()voidListEmpt()ySearchList()GHhh()Listlength()StatusListDelete()用伪码给出主程序的主要处理过程。1.详细设计InitStack(&S)构造一个空栈。Push(&S,e)插入元素为e的新栈顶。Pop(&s,&e)删除栈顶元素用e返回ClearStack(&s)清空栈StackEmpty(s)栈是否为空GetTop(s,&e)用e返回s的栈顶元素StackLength(&s)计算栈长度(2)主要伪代码:插入元

4、素为e的新栈顶。StatusPush(SqStack&S){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+=STACKINCREMENT)*sizeof(SElemType));if(!S.base)exit(OVERFLOW);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;returnOK;}删除栈顶元素用

5、e返回StatusPop(SqStack&S,SElemType&e){if(S.top==S.base)returnERROR;S.top--;e=*S.top;returnOK;}/检验栈是否为空StatusStackEmpty(SqStack&S){if(S.top==S.base)printf("栈为空");elseprintf("栈不为空");returnOK;}用e返回s的栈顶元素StatusGetTop(SqStack&S,SElemType&e){if(S.top==S.base)

6、returnERROR;p--;e=*p;returnOK;}栈的长度StatusStackLength(SqStack&S){if(S.base==NULL)returnERROR;elsereturnOK;}清空栈StatusClearStack(SqStack&S){if(S.base=NULL)returnERROR;elseS.top=S.base;returnOK;}1.调试分析在调试的时候初期的时候,我们解决了一些常见的错误,一些失误引起的语法错误,但是我也看到了我的程序的很多不足之

7、处,例如:因为程序比较长,运行时如果没有表达清楚,很难进行操作,我在编程时没有明确提示,这样用起来我们自己都觉得别扭。在老师的指导下,我在程序中添加了printf(“输入、、、”);等语句,这样看的时候就一目了然,很方便。由于时第一次进行数据结构上机实验,把算法和C语言编程结合起来有点困难,总是把C语言编程的方法用在数据结构中,于是造成程序十分复杂,并且存在很多错误,在网上找了很多关于数据结构的算法编程才明白了一些,就是用C语言的方法把算法表示出来,只要熟记一些代码,多进行一些练习就显得比较简单了

8、。2.使用说明1建立顺序栈:先输入顺序栈的元素个数,按ENTER键,输入第一个元素后,再按ENTER键换行输入第二个元素,同样操作进行下面。2选项2是测试顺序栈是否为空。3输入3选项是计算栈长度。4选项4是读出栈顶元素。5选项5元素出栈。6选项6是销毁栈。3.测试结果采用测试数据,列出实际的输入、输出结果。输入输出如截图:1.附件//顺序栈#include"stdio.h"#include"stdlib.h"#defineSTACK_INIT_SIZE10//存储空间初始分配量#d

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

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

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