车厢调度问题课程设计报告(共13页).doc





《车厢调度问题课程设计报告(共13页).doc》由会员分享,可在线阅读,更多相关《车厢调度问题课程设计报告(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 课 程 设 计 报 告课程名称 数据结构课程设计 选题名称 车厢调度 班级 A1401 姓名 王蓉 学号 02 实验组别 同组实验者 完成时间2016 年 1 月 4 日至2016 年 1 月15 日指导教师 卫丽华 目 录专心-专注-专业1、数据结构课程设计任务书1.1、题目车厢调度 1.2、要求假设在铁路调度站(如教科书图3.1(b)所示)入口处的车厢序列的编号依次为1,2,3,.,n。设计一个程序,求出所有可能由此输出的长度为n的车厢序列。 首先在教科书上提供的栈的顺序存储结构Seqstack之上实现栈的基本操作,即实现栈类型。程序对栈的任何存取(即更改,读取
2、和状态判别等操作)必须借助于基本操作进行。2、总体设计2.1、功能模块设计根据课程设计题目的功能要求,各个功能模块的组成框图如下:主程序模块 递归模块栈模块调度模块开始2.2、所有功能模块的流程图定义一个空栈判断栈空或栈满调用函数 循环输出车厢总个数输出所有车厢序列结束3、详细设计3.1、程序中所采用的数据结构及存储结构的说明1)栈类型;typedef struct stacklistSElemType *base;SElemType *top;int stacksize;SqStack;栈的基本操作设置如下:void Stack_init(SqStack *s)/初始化,设s为空栈void
3、Stack_Push(SqStack *s,SElemType e)/若分配空间成功,则在s的栈顶插入新的元素e,并返回TRUE/若栈不变,并返回FALSESElemType Stack_Pop(SqStack *s)Status Stack_Empty(SqStack *s)Status Stack_Full(SqStack *s)void Stack_printreverse(SqStack s)void search(SqStack *inputPoint,SqStack *tempPoint,SqStack *outputPoint)3.2、算法的设计思想1.定义栈2.初始化三个栈in
4、put,temp,output3.for循环控制输出语句,车厢号依次进栈4.调用函数Stack_Push(&input,i); search(&input,&temp,&output);输出所有情况基本操作:InitStack(&S)操作结果:构造一个空栈S。DestroyStack(&S)初始条件:栈S已存在。操作结果:销毁栈S。ClearStack(&S)初始条件:栈S已存在。操作结果:将栈S清为空栈。StackLength(S)初始条件:栈S已存在。操作结果:返回栈S的长度。StackEmpty(S)初始条件:栈S已存在。操作结果:若S为空栈,则返回1,否则返回0。GetTop(S,&e
5、)初始条件:栈S已存在。操作结果:若S不空,则e返回栈顶元素。Push(&S,&e)初始条件:栈S已存在。操作结果:在s的栈顶插入新的栈顶元素e。Pop(&S,&e)初始条件:栈S已存在。操作结果:删除S的栈顶元素,并以e返回其值。StackTraverse(S,visit()初始条件:栈S已存在。操作结果:从栈底到栈顶依次对S中的每个元素调用函数visit()。核心算法void search(SqStack *input,SqStack *temp,SqStack *output)if(!Emptystack(input)/ 一个数进栈后,有两种处理方式:要么立刻出栈,要么进行下一个数的进栈
6、Push(temp,Pop(input);search(input,temp,output);Push(input,Pop(temp);if(!Emptystack(temp)/ 一个数出栈后,有两种处理方式:要么继续出栈,要么继续下一个数的进栈Push(output,Pop(temp);search(input,temp,output);Push(temp,Pop(output);if(Fullstack(output)/ 栈满时输出序列产生,输出total+;PrintStack(*output);主函数描述void main()SqStack input,temp,output;int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车厢 调度 问题 课程设计 报告 13

限制150内