数据结构实验两个栈模拟队列Word文档格式.docx

上传人:b****8 文档编号:22919150 上传时间:2023-02-06 格式:DOCX 页数:15 大小:161.75KB
下载 相关 举报
数据结构实验两个栈模拟队列Word文档格式.docx_第1页
第1页 / 共15页
数据结构实验两个栈模拟队列Word文档格式.docx_第2页
第2页 / 共15页
数据结构实验两个栈模拟队列Word文档格式.docx_第3页
第3页 / 共15页
数据结构实验两个栈模拟队列Word文档格式.docx_第4页
第4页 / 共15页
数据结构实验两个栈模拟队列Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据结构实验两个栈模拟队列Word文档格式.docx

《数据结构实验两个栈模拟队列Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验两个栈模拟队列Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

数据结构实验两个栈模拟队列Word文档格式.docx

二概要设计

 

为实现上述操作,应以两个栈为存储结构

1.基本操作:

voidinitstack(seqstack&

s)

操作结果:

实现栈的初始化

voidinqueue(seqstack&

s1,seqstack&

s2)

实现入队功能

voidoutqueue(seqstack&

操作结果:

实现出队功能

2.本程序包含四个模块

(1)主程序模块

(2)栈初始化模块】

(3)入队模块

(4)出队模块

3.模块调用图

三详细设计

1.元素类型,节点类型和指针类型

typedefintelemtype;

typedefstruct

{

elemtypedata[maxsize];

inttop;

}seqstack;

seqstacks1,s2;

2.每个模块的分析

intmain()

intk,m,select,num;

seqstacks1,s2;

initstack(s1);

/*初始化栈s1*/

initstack(s2);

/*初始化栈s2*/

while(select!

=3)/*选择操作*/

{

printf("

请选择操作:

\n"

);

1.入队\n2.出队\n3.结束\n"

scanf("

%d"

&

select);

switch(select)

{

case1:

{

inqueue(s1,s2);

/*入队操作*/

break;

}

case2:

printf("

请输入出队元素个数:

/*输入出队元素个数*/

scanf("

num);

for(k=0;

k<

num;

k++)/*利用循环输出元素*/

{

if(s1.top==-1&

&

s2.top==-1)/*判断队空*/

{

printf("

队空.\n"

break;

}

else/*如果不空,则出队*/

outqueue(s1,s2);

}

case3:

break;

}

}

getchar();

return0;

}

(2)栈初始化模块

s.top=-1;

intnumber,m,i;

printf("

请输入入队元素个数:

scanf("

number);

/*输入入队元素个数*/

for(i=0;

i<

number;

i++)

请输入元素:

"

/*输入入队元素*/

m);

if(s1.top==maxsize-1&

s2.top!

=-1)/*判断队满,即s1栈为满,s2栈不为空,此时对中不能再进元素*/

printf("

队满.\n"

break;

}

else/*如果队不满可以接着入队*/

if(s1.top!

=maxsize-1)/*如果s1不满,接着入队,让元素进栈s1*/

{

s1.top++;

s1.data[s1.top]=m;

}

Else/*如果s2空,先让栈s1中元素进入栈s2,直到s1空,然后让元素进入s1*/

do

s2.top++;

s2.data[s2.top]=s1.data[s1.top];

s1.top--;

}while(s1.top!

=-1);

s1.top++;

if(s2.top!

=-1)/*如果栈s2不空,直接出栈,相当于出队*/

元素%d出队"

s2.data[s2.top]);

s2.top--;

else/*如果s2空,让s1中元素进s2,直到s1为空,然后再出栈*/

do

s2.top++;

}while(s1.top!

(5)函数调用关系图

3.完整的程序:

(见源文件).

四使用说明、测试分析及结果

1.程序使用说明

(1)本程序的运行环境为VC6.0.

(2)进入演示程序后即显示提示

请选择操作

1.入队

2.出队

3.结束

请输入入队元素个数

请输入元素

请输入出队元素个数

2.测试结果

3.调试中的错误

刚开始编完运行入队正常,结果无法出队,经检查为在判断队满是s1.top==maxsize-1处少了一个=号,导致错误,改正后正常。

4.运行界面

五、实验总结

本次试验由于准备不足,实验课前未在纸上进行预编程,实验课上算法思想出现了一定的偏差,导致未能在课上编出程序,回来后经过仔细思考和同学提示,将算法思想进行了改进,然后顺利编出程序,虽然中间出现了一点小问题,经过检查已解决。

通过本次试验可以熟练掌握栈的使用。

教师评语:

实验成绩:

#include<

stdio.h>

#definemaxsize10

//队容量最大为20个元素

//初始化栈

//入队

else/*如果s2空,先让栈s1中元素进入栈s2,直到s1空,然后让元素进入s1*/

//出队

=-1)/*如果栈s2不空,直接出栈,相当于出队*/

else/*如果s2空,让s1中元素进s2,直到s1为空,然后再出栈*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1