摘要: 一、哈夫曼树的概念和定义 什么是哈夫曼树? 让我们先举一个例子。 判定树: 在很多问题的处理过程中,需要进行大量的条件判断,这些判断结构的设计直接影响着程序的执行效率。例如,编制一个程序,将百分制转换成五个等级输出。大家可能认为这个程序很简单,并且很快就可以用下列形式编写出来: if(score<6 阅读全文
posted @ 2017-06-30 20:17 ZYVV 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在“Communications of the ACM”上。同年Stephen Warshall(史蒂芬·沃舍尔)也独立发表了这个算法。Robert W.Floyd这个牛人是朵奇葩,他原本在芝加哥大学读的文学,但是因为当时美国 阅读全文
posted @ 2017-06-30 16:36 ZYVV 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1.引言: 若要删除左边的(V0,V2)这条边,需要对图下表的阴影两个结点进行删除操作。 2.邻接多重表的存储结构: iVex和jVex:是与某条边依附的两个顶点在顶点表中的下标。 iLink:指向依附顶点iVex的下一条边。 jLink:指向依附顶点jVex的下一条边。 3.邻接多重表示意图绘制: 阅读全文
posted @ 2017-06-30 15:19 ZYVV 阅读(1232) 评论(0) 推荐(0) 编辑
摘要: 邻接表固然优秀,但也有不足,例如对有向图的处理上,有时候需要再建立一个逆邻接表。 而这个十字链表就是把邻接表和逆邻接表结合的玩意。 所以重新定义节点的数据结构 我们看到顶点表多了一个指针。多了一个In的指针。 描述成代码就是这样 假设此时我们保存的是v1 -> v0 这条边,此时headVex就是1 阅读全文
posted @ 2017-06-30 15:13 ZYVV 阅读(3157) 评论(0) 推荐(1) 编辑
摘要: 对于图来说,邻接矩阵是不错的一种图存储结构,但是我们也发现,对于边数相对顶点较少的图,这种结构是存在对存储空间的极大浪费的。因此我们考虑另外一种存储结构方式:邻接表(Adjacency List),即数组与链表相结合的存储方法。 邻接表的处理方法是这样的。 1、图中顶点用一个一维数组存储,另外,对于 阅读全文
posted @ 2017-06-30 14:50 ZYVV 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图。一个一维的数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 我们来看一个实例,图7-4-2的左图就是一个无向图。 我们再来看一个有向图样例 阅读全文
posted @ 2017-06-30 14:45 ZYVV 阅读(3796) 评论(0) 推荐(0) 编辑