小学语文 识字 生字 游戏 课件_第1页
小学语文 识字 生字 游戏 课件_第2页
小学语文 识字 生字 游戏 课件_第3页
小学语文 识字 生字 游戏 课件_第4页
小学语文 识字 生字 游戏 课件_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构数据结构.车厢车厢 调度调度 假设停在铁路调度口的车厢序列的编号依次 1,2,3,n, 设计一个程序,求出所有可能由此输出的长度为 n的车 厢序列。 问题 描述: 为使车厢能够调度,常把站台设计成栈式结构。 利用先进后出的性质,改变车厢的顺序。 从而,问题可以转化为: 1,2,3,n依次全部 进栈且全部出栈,求所有的出栈序列。 问题 分析: 从具体问题入手: 第一步:假如有1,2,3准备进栈,此时具体的过程如下 第二步:对上述过程的进一步分析,一个数进栈以后,有 两种处理方式:要么下一个元素进栈(如果有的话),要 么立刻出栈;一个数出栈以后,要么继续出栈(如果栈不 为空),要么下一个元

2、素进栈(如果有的话) 第三步:继续分析,由此得出一个结论,在操作过程中的 任何状态下都有两种可能的操作:“入”和“出”。每个 状态下处理问题的方法都是相同的,这说明问题本身具有 天然的递归特性,可以考虑用递归算法实现。 本程序的主要算法分析: 调度函数的伪码算法如下: void Scheduling(int pos, int path,int i) if(posn) 一个数进栈后,有两种处理方式:要么下一个数的进栈, 要么立刻出栈 if(!IsEmpty()=true) 一个数出栈后,有两种处理方式:要么继续出栈 ,要么下一 个数的进栈 if(pos=n if (posmaxSize) Pus

3、h(pos+1); Scheduling(pos+1,path,i); Pop(); if (IsEmpty()=false) temp=Pop(); pathi+=temp; Scheduling(pos,path,i); Push(temp); if (pos=maxSize for (int j=0;ji;j+) coutpathj ; coutt; S(1,path,0) push(2) S(2,path,0) pop() t=path0=p op() S(1,path,1) push(t) S(2,path,0) 停止 t=path0=p op() S(1,path,1) push(

4、t) S(1,path,1) 停止 t=path0=p op() S(1,path,2) push(t) S(1,path,1) push(2) S(2,path,1) pop() 停止 S(1,path,2) 停止 停止 输出 pathi:2,1 S(2,path,1) 停止 停止 输出 pathi:1,2 主函数调用Scheduling函数后后究竟怎么执行的呢 现考虑只有两个车厢 1,2 ? 1 2 2 1 1 2 1 1 1 初始状态: : : : : : : : : 进出栈情况: 谢谢 谢谢 !看收 ! 3进 3进 无 3出 1出 无 2出 无 2出 3进 空 3出 无 3进 无 3出 无 3出 1出 3进 无 1出 2出 无 空 空 无 3出 无 空 无 无 空 空 无 2进 2进 1出 1进 空 2出 输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论