1、 1 / 19 目录目录 一:哈夫曼编码译码器一:哈夫曼编码译码器 2 1.需求分析需求分析 2 2.详细设计详细设计 2 2.1.哈夫曼树节点的数据类型定义为:哈夫曼树节点的数据类型定义为: 2 2.2.所实现的功能函数如下所实现的功能函数如下 2 2.3.流程图:流程图: . 3 3.调试分析调试分析 3 4.用户手册用户手册 3 5.测试结果测试结果 4 6.附录附录 . 4 二二. 多叉路口交通灯管理多叉路口交通灯管理 11 1.需求分析需求分析 11 2.详细设计详细设计 12 2.1 .数据结构数据结构 12 2.2.算法流程图算法流程图 12 2.2.1建立邻接矩阵的流程图建立邻
2、接矩阵的流程图 . 12 2.2.2 交通灯颜色模块的流程图交通灯颜色模块的流程图 . 12 2.3 相关函数相关函数 13 2.3.1输入图函数输入图函数 void Create(Graph int weight; /权值 int parent,lchild,rchild; /父结点,左孩子与右孩子 htnode,*hfmtree; 2.2.所实现的所实现的功能函数如下功能函数如下 1、void hfmcoding(hfmtree int weight; /权值 int parent,lchild,rchild; htnode,*hfmtree; typedef char *hfmcode;
3、 void Select(hfmtree for(j=1;jchoice; if(choice=I|choice=i) /初始化赫夫曼树 coutcode; couth; input_file.close(); output_file.open(“Textfile.txt“); if(!output_file) couth; coutC,而有的不能同事通行,如 EB,AD,那 么,如何设置交通灯呢? 每个圆圈表示五叉路口上的一条通路, 两个圆圈之间的连线表示这两个圆圈表示的两条道路 不能同事通行。 设置交通灯的问题等价为对图的顶点进行染色问题。 要求对图上的每个顶点 染一种颜色, 并且要求有限
4、相连的两个顶点不能具有相同颜色, 而且总的颜色种类尽可能少。 所以,我准备把每个顶点用字母“a、b、c、”表示,而染色的颜色用数字表示。可以同 时通行的道路交通灯的颜色相同,不能同时通行的颜色不同。顶点B 为 Aa,AC 为 b,AD 为 c,BA 为 d,BC 为 e,BD 为 f,DA 为 g,DB 为 h,DC为 i,EA 为 j,EB 为 k,EC 为 l,ED 为 12 / 19 m,顶点之间的边全都用“1”表示。 2.详细设计详细设计 2.1 .数据结构数据结构 首先,是考虑数据类型。在多叉路口中,每条通路是最基本的组成部分,对于交通灯管理已 经不可能在细分了,所以选定通路作为数据的基本类型,并在程序中定义图的数据结构,其 中包含存放图的顶点和图的边,以及顶点数和边数。用邻接矩阵表示图的结构。其形式描述 如下: int color30=0;/来存储对应块的对应颜色 typedef char vextype; typedef int adjtype; typedef stru