摘要: 定义Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临时标号的方式。注意该算法要求图中不存在负权边。算法思想按路径长度递增次序产生最短路径算法:把V分成两组:(1)S:已求出最短路径的顶点的集合(2)V-S=T:尚未确定最短路径的顶点集合将T 阅读全文
posted @ 2013-03-28 18:18 byfei 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 哈夫曼树给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。基本术语哈夫曼树(霍夫曼树)又称为最优树.1、路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。2、结点的权及带权路径长度若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。3、树的带权路径长度树的带权路径长度规定为所有叶子结点的带 阅读全文
posted @ 2013-03-28 18:13 byfei 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 一个无向图(undirected graph)是一个二元组<V,E>,其中:1.V是非空集合,称为顶点集。2.E是V中元素构成的无序二元组的集合,称为边集。【解释】直观来说,若一个图中每条边都是无方向的,则称为无向图。(1)无向边的表示无向图中的边均是顶点的无序对,无序对通常用圆括号表示。【例】无序对(vi,vj)和(vj,vi)表示同一条边。(2)无向图的表示【例】下面(b)图中的G2和(c)图中的G3均是无向图,它们的顶点集和边集分别为:V(G2)={v1,v2,v3,v4}E(G2)={(vl,v2),(v1,v3),(v1,v4),(v2,v3),(v2,v4),(v3,v 阅读全文
posted @ 2013-03-28 17:08 byfei 阅读(576) 评论(0) 推荐(0) 编辑