软基实验第三次上机

软基实验第三次上机

ID:46598654

大小:604.90 KB

页数:16页

时间:2019-11-26

软基实验第三次上机_第1页
软基实验第三次上机_第2页
软基实验第三次上机_第3页
软基实验第三次上机_第4页
软基实验第三次上机_第5页
资源描述:

《软基实验第三次上机》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件技术基础上机实验报告(学生姓名)(学号)上机实验三ex3_1:链栈——基本题1)链栈结点类型定义为:typedefstructnode{intdata;structnode*next;}node_type;2)编写进栈函数push3)编写出栈函数pop4)编写main函数,首先建立一空链栈;调用进栈函数,将从键盘输入的数据元素逐个进栈,输入0结束;显示进栈后的数据元素;调用两次出栈函数,显示出栈后的数据元素。ex3_2:循环队列——基本题1)顺序循环队列类型定义为:#defineN20typedefstruct{intdata[N];intfront,r

2、ear;}queue_type;2)编写循环队列出队函数dequeue3)编写循环队列入队函数enqueue4)编写函数:voidaa(queue_type*q);其功能为,调用出队函数把队列q中的元素一一出队,如果是负数直接抛弃;如果是正数,则调用入队函数,插入到q的队尾。5)编写main函数,首先建立一个队列,其中的数据元素为:{2,3,-4,6,-5,8,-9,7,-10,20};然后调用aa函数,并将aa函数调用前后队列的数据元素分别输出到屏幕上。ex3_3:教材第一章习题12题——扩展题1)两个栈共用一个数组空间,它们的栈底分别在数组两端,栈顶相向

3、而行。编写入栈和出栈函数,实现两个栈元素分别的(但共用)入栈和出栈。2)main中函数完成以下测试:a、能否在共用空间上实现两个独立的栈:即能否向两个栈分别输入元素;能否分别从两个栈取出元素,每个栈取出的元素的顺序符合各自栈的特点b、能否在共用空间用满时,及时制止新的入栈行为。例如:假设数组大小为6,main函数实现以下动作,向栈1接连入栈4个元素后,向栈2入栈2个元素致栈满,再向栈2输入一个元素,将报错。接着从栈1出栈1个元素,再向栈2入栈,就会成功。最后,两个栈分别出空,观察输出顺序是否满足栈的特点。ex3_4:教材第一章习题13题——扩展题1)实现一种

4、扩展的循环队列,使得全部的数组空间都能使用,基本思路是当传统循环队列放满时:即(rear+1)%MAXNUM==front为真时,可以再入队一个元素,接着rear=(rear+1)%MAXNUM后就会与front相等,此时将另外一个变量flag设置为1,表示此时的rear==front不是为空,而是满。否则flag为0时,如果出现rear==front,则表示队列为空。2)main()函数实现以下测试:a、能否实现全部“装满”,即装入元素个数为MAXNUMb、能否按照循环队列那样绕着存放空间循环存放。c、能否在装满后,拒绝再装。d、能否在装满后,不会变成“空

5、”的——即可以还可正常出队。e、能否在全部出空后,不会变成“满”的——即可还可正常入队。例如:假设循环队列最大空间为5,main()函数实现以下动作,接连成功入队5个元素,入队第6个元素时,报错。接着出队3个元素,入队3个元素,均成功。再入队1个,报错。继续连续成功出队6个元素,出队第7个时报错。最后,再成功入队2个元素。*******************************************************************************一、程序流程说明——有条理的文字或流程图*由于此次上机题目较多,为了让老师看得更加

6、容易,条理体现在代码注释中。二、完整程序训练:(注:同样的,由于代码长达400多行,所有方法的编写和调用都已经尽可能按照实验PPT题目的顺序来,所以基础部分和扩展题的代码都不分开编写,已经在代码中有详细注释。)代码://实验三栈和队列#include"stdafx.h"#include"malloc.h"#include"stdlib.h"#defineN20#defineMAX6/*************************ex3_1******************************///ex3_1定义基础题1链栈节点类型typedefst

7、ructLinkStackNode{intdata;LinkStackNode*next;}*LinkNode;//定义栈顶指针类型typedefstruct{LinkStackNode*top;}*LinkStackTop;//链栈初始化函数voidinitLinkStack(LinkStackTop&stack);//将栈内元素输出voidPrintdataOfLinkStack(LinkStackTop&stack);//ex3_1(2)编写进栈函数pushvoidpush(LinkStackTop&stack,intpopData);//ex3_1(

8、3)编写出栈函数popvoidpop(LinkSta

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

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

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