电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据结构课程设计说明书

9页
  • 卖家[上传人]:夏**
  • 文档编号:477059387
  • 上传时间:2022-10-23
  • 文档格式:DOC
  • 文档大小:84KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、车厢调度问题摘要:实现栈的基本操作,即实现类型。程序对栈的任何存取,即更改,读取和 状态判别等操作,必须借助于基本操作。在操作过程中的任何状态下都有两种可 能的操作:“入”“出”。每个状态下处理问题的方法都是相同的,具有递归特性。关键字:栈递归打印0.引言数据结构是计算机科学与技术、软件工程及相关学科的专业基础课,也 是软件设计的技术基础。数据结构课程的教学要求之一是训练学生进行复杂 的程序设计的技能和培养良好程序设计的风格,其重要程度决不亚于理论知识的 传授,因此课程设计环节是一个至关重要的环节,是训练学生从事工程科技的基本能力,是培养创新意识和创新能力的极为重要的环节。基本要求如下:(1) 熟练掌握基本的数据结构;(2) 熟练掌握各种算法;(3) 运用高级语言编写质量高、风格好的应用程序。1. 需求分析(1) 这个实验要求我用栈实现车厢调度.(2) 车厢的个数是由用户输入的.(3) 程序会自动给车厢进行从1到n的编号.用户输入车厢个数后,程序打印出所有可能的车厢出站顺序.2. 数据结构设计在这个程序中存储结构是栈,对于栈的声明和定义如下:typedef struct SqStack

      2、int *top; /*栈顶指针*/int *base; /*在栈构造之前和销毁之后.base的值为NULL*/int stacksize; /*当前分配的存储空间*/SqStack; /*顺序栈的结构体声明和定义*/3. 算法设计3.1对算法的简单描述这个实验中,要求用到栈实现栈的基本操作,即实现类型。程序对栈的任 何存取(即更改,读取和状态判别等操作)必须借助于基本操作。在操作过程中的任何状态下都有两种可能的操作:“入”“出”。每个状态下处理问题的方法 都是相同的,具有递归特性。栈实现是方便的无论如何调度,我们的操作都是入栈和出栈,设定入栈为1,出栈为-1,对n列车 厢有2n次这样的操作,例如n=4,则有操作 1111-1-1-1-1、1-11-11-11-1等.所以还要构造一个操作命令队列 trainlist 。在算法中还要用到递归算法,其本质为:一个数的进栈以后有两种处理方式:要么立刻出栈,或者下一个数的进栈。一个数的出栈以后也有两种处理方式:要么继续出栈(栈不为空),或者下一个数的入栈。3.2栈的基本操作构造一个栈voidIn itStack2(SqStack*S,i ntb

      3、ase_size)S-base=(i nt*)malloc(base_size * sizeof(i nt);if(!S-base)puts(ERROR!);return ;S-top=S-base;S-stacksize=base_size; /*构造一个空栈*/插入新的栈顶元素void Push2(SqStack *S, int e)*(S-top+)=e;/*插入元素e为新的栈顶元素*/输出栈顶元素void Pop2(SqStack *S)int e;if(S-top=S-base)puts(ERROR);return ;e=*-S-top;prin tf(%d,e);/*若栈不空,则删除s的栈顶元素,用e返回其值*/3.3输入车厢数并给车厢编号prin tf(please in put the nu mber of the train s:);scan f(%d, &trai nsize);if(tra in size=33)puts(the nu mber is wron g!);return;for(i=0;i trai nsize;i+)的编号*/trai nsource

      4、i=i+1;/* 给火车贴上从 1 到 train size4程序实现4.1源代码#i nclude #i nclude typedef struct SqStackint *top;int *base;int stacksize;SqStack;struct SqStack stack; /* 定义一个栈变量 */int trainsize; /* 车厢个数 */int trainsource33; /* 车厢数组 */void Show(intlist_in); /* 打印 */list_ nu m);voidSchedule(i ntlist_i n,i ntsource_ nu m,i nt/*对第source_num号车厢进行处理*/void In itStack2(SqStack *S,i nt base_size)S-base=(i nt *)malloc(base_size *sizeof(i nt);if(!S-base)puts(ERROR!);return ;S-top=S-base;S-stacksize=base_size;void Push2(SqStack

      5、 *S, int e)*(S-top+)=e;void Pop2(SqStack *S)int e;if(S-top=S-base)puts();return ;e=*-S-top;prin tf(%d,e);voidTrain Schedule。int i;inttrai nl ist66;prin tf(please in put the nu mber of the train s:);scan f(%d, &trai nsize);if(tra in size=33)puts(WRONG LENGTH!);return;for(i=0;i trai nsize)return;for(i=0;i50;i+)trainl isti=-1;for(i=0;i=list_ nu m-1;i+)trai nl isti=list_i ni;sum=sum+trai nlisti;if(sum !=0)trai nlistlist_ nu m=1;Schedule(trainlist,source_num+1,list_num+1)/* 对下一车厢进行处理 */for(i=0,judge=

      6、0;itra in size*2;i+)judge=judge+tra in listi;if(source_ num = trai nsize & judge =0)Show(trainlist); /*打印出可能的列车序列*/trai nlistlist_ nu m=-1;Schedule(trai nlist,source_ nu m,list_ nu m+1);for(i=0,judge=0;itra in size*2;i+)judge=judge+tra in listi;if(source_ num = trai nsize & judge =0)Show(trainlist); /*打印出可能的列车序列*/elsetrai nlistlist_ nu m=1;Schedule(trai nlist,source_ nu m+1,list_ nu m+1);for(i=0,judge=0;itra in size*2;i+)judge=judge+tra in listi;if(source_ num = trai nsize & judge =0)Show(trai n

      7、list);voidShow(intlist_in) /*输出可能的车厢序列*/int i,cur=0;int len gth;SqStack stack;In itStack2(&stack,trai nsize);len gth=trai nsize*2;for(i=0;ile ngth;i+)if(list_i n i=1)Push2(&stack,trai nsourcecur+);else if(list_i n i=-1)Pop2(& stack);elseputs(error!);puts();int main()Trai nSchedule();getchar();getchar();4.2运行结果运行结果如下:畐 C:Win - TCpro)ectscKdd2.eMeeS34224331143322al:leV43332222211111input22nunkier- oftlie tra ins : 41114-114342 2 434不足之处在于对车厢个数进行了限制,车厢数越小越稳定.还有就是一次只 能对一组车厢进行调度.5. 设计体会在进行课程设计的过程中,先把问题具体化,再进行编程车厢调度问题是个 很老的问题,它的难点在于车厢进栈出栈的递归算法.经过这次课程设计,我加深 了对栈的操作的熟练程度,对递归有了更深刻的理解,递归算法有点难度6. 结束语课程设计终于完成了 ,总的来说,栈是个很实用的存储结构.递归算法也很重 要.我对数据结构有了进一步的掌握.参考文献1 严蔚敏,吴伟民数据结构,清华大学出版社,2001年1月.2 谭浩强.C程序设计,清华大学出版社,1999年12月.

      《数据结构课程设计说明书》由会员夏**分享,可在线阅读,更多相关《数据结构课程设计说明书》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.