C语言课件 第23 24章.ppt
《C语言课件 第23 24章.ppt》由会员分享,可在线阅读,更多相关《C语言课件 第23 24章.ppt(35页珍藏版)》请在三一文库上搜索。
1、第23章 火车车厢重排,问题描述 问题分析及实现 开发过程常见问题及解决,第23章 火车车厢重排,问题描述 问题分析及实现 开发过程常见问题及解决,第23章 火车车厢重排,问题描述 问题分析及实现 开发过程常见问题及解决,第23章 火车车厢重排,问题描述 问题分析及实现 开发过程常见问题及解决,火车车厢重排,一列乱序排列货车车厢的火车,在经过车站时,可以从中间丢下这节车厢吗?而这节车厢却是终点站的车厢。那么,怎么样才可以使得出发前就可以以最快的理想的方式排好车厢号呢?使之在每站只丢下最后一节车厢,停留不长时间呢?本章讲解这类问题如何求解。,23.1 问题描述,一列货运列车共有n节车厢,每节车厢
2、将停放在不同的车站,假定n个车站的编号分别为1n,货运列车按照第n站至第1站的次序经过这些车站,车厢的编号与他们的目的地相同。为了便于从列车上卸下相应的车厢,必须重新排列车厢,使各车厢从前至后都按照编号1到n的次序排列,当所有的车厢都按照这种次序排列时,在每个车站只需卸掉最后一节车厢即可。,23.2 问题分析及实现,23.2.1 问题分析 23.2.2 问题实现 23.2.3 程序运行,23.2 问题分析及实现,由问题描述可知,我们要实现的是将车厢放入缓冲轨,在需要压栈时压栈,需要出栈时出栈,最后将排序结果输出,23.2.1 问题分析,在这个问题的求解中,我们引入几个缓冲铁轨,在一个缓冲铁轨中
3、放入车厢c,如果没有可用的缓冲铁轨,则返回0,如果空间不足,则引发异常否则返回1,为车厢c寻找最优的缓冲铁轨。,23.2.2 问题实现,1. 采用结构体保存过程数据 通过定义一个结构体类型,此结构体实现对列车车厢序号进行栈的存储和管理。那么,根据这个思路,代码如下(代码23-1.txt)。,01 #define StackSize 100 /*栈大小100个元素*/ 02 #define MaxLength 100 /* 最大字符串长度*/ 03 typedef int DataType; /*栈元素的数据类型定义为整数*/ 04 typedef struct 05 06 DataType d
4、ataStackSize; 07 int top; 08 SeqStack; 09 void Initial(SeqStack *S) /*置空栈*/ 10 11 S-top=-1; 12 13 int IsEmpty(SeqStack *S) /*判栈空*/ 14 15 return S-top=-1; 16 17 int IsFull(SeqStack *S) /*判栈满*/ 18 19 return S-top=StackSize-1; 20 ,23.2.2 问题实现,2. 输出结果 将结果输出至屏幕,以循环打印的方式,调用标准输入输出函数printf,将结果回显。代码如下(代码23-2
5、.txt)。,23.2.2 问题实现,01 void Output(int* minH, int* minS, SeqStack H , int k, int n) 02 03 int i; 04 int c=Pop( 11 12 ,23.2.2 问题实现,3. 将某个车厢号送入某个缓冲铁轨 铁轨不空时,在此铁轨顶部的车厢编号最小,否则将一个车厢号通过缓冲铁轨压入栈。代码如下(代码23-3.txt)。,23.2.2 问题实现,4. 火车车厢重排主函数 将所有火车车厢按数组规定的顺序送入缓冲铁轨等待排序。代码如下(代码23-4.txt),23.2.3 程序运行,单击【调试】工具栏中的按钮,根据提
6、示输入数据,按【Enter】键,即可输出如下结果。,23.3 开发过程常见问题及解决,开发过程常见问题及解决办法如下,仅供参考。 程序输出结果一直是同样的结果,不代表程序有错误,而是因为程序目的就是要让无论列车车厢号如何乱序,最终排的序是顺序的。 此程序的难点之一如何模拟停在铁轨上的列车。采用数组来模拟,这是最普遍的一种方法。,第24章 哈夫曼编码的实现,问题描述 问题分析及实现 开发过程常见问题及解决,第24章 哈夫曼编码的实现,问题描述 问题分析及实现 开发过程常见问题及解决,第24章 哈夫曼编码的实现,问题描述 问题分析及实现 开发过程常见问题及解决,第24章 哈夫曼编码的实现,问题描述
7、 问题分析及实现 开发过程常见问题及解决,哈夫曼编码的实现,现实的信息生活中,需要存储的信息是越来越多。在通信行业中,为了提高通信的效率,各路济济的人才也是绞尽脑汁了。本章将讲解为了减小信息的编码及通信的编码,需要重新对信息进行编码的一种非常重要的编码算法。哈夫曼编码现已应用到了很多行业,那么如何实现哈夫曼编码呢?它又有什么优势呢?,24.1 问题描述,哈夫曼编码(Huffman Coding)是一种编码方式,是可变字长编码(VLC)的一种。 Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就称为Huffman编码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课件 第23 24章 语言 课件 23 24
链接地址:https://www.31doc.com/p-3650367.html