数据结构
xiyf2046
这个作者很懒,什么都没留下…
展开
-
java数据结构_附12_图、顶点和边的定义(双链存储)
图--双链式存储结构 顶点 和 边 的定义 1、Vertex.java 2、Edge.java 3、AbstractGraph.java 1、 public class Vertex { private Object info;//顶点信息 private LinkedList adjacentEdges;//顶点的邻接边表 private Link转载 2013-10-14 15:07:53 · 1718 阅读 · 0 评论 -
java数据结构_笔记(5)_图的算法
图的算法 1 图的遍历 图的遍历就是从图中某个顶点出发,按某种方法对图中所有顶点访问且仅访问一次。 遍历算法是求解图的连通性问题、拓扑排序和求关键路径等算法的基础。 2 深度优先遍历 从图中某个顶点V 出发,访问此顶点,然后依次从V的各个未被访问的邻接点出发 深度优先搜索遍历图,直至图中所有和V有路径相通的顶点都被访问到。 若此时图中 善有顶点未被转载 2013-10-15 11:07:59 · 717 阅读 · 0 评论 -
数据结构与算法书籍推荐
如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,编译原理。如果只开一门课,那剩下的就一定是:数据结构与算法。Niklaus Wirth说:算法+数据结构=程序,不说废话了,下面列出一份数据结构算法书目,先从最著名的说起 A 原书名:The Art of Computer Programming 中文名:计算机程序设计艺术 作者:Donald E.Knuth转载 2013-10-15 11:13:43 · 941 阅读 · 0 评论 -
数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径
数据结构存储integerini算法string import java.util.ArrayList; import java.util.List; // 模块E public class AdjMatrixGraph { protected SeqList vertexlist; // 顺序表存储图的顶点集转载 2013-10-15 11:13:23 · 1961 阅读 · 0 评论 -
java数据结构_附11_图的接口定义
图的接口定义 Graph public class UnsupportedOperation extends RuntimeException { public UnsupportedOperation(String err) { super(err); } } public interface Graph { public static final i转载 2013-10-14 15:06:54 · 879 阅读 · 0 评论 -
图-代权最小树
图中代权的最小树的问题如下: 如果N个城市之间(图中的顶点)要修公路(图中的边)以使所有的城市联通,求怎样修可以使得公路的总长最小? 以上问题中的N个城市之间可以用图中的顶点表示,公路可以图中的边表示,公路的长度用边长表示,公路是双向的。问题就转换为在有N个顶点中的双向代权图中求得一个最小树。这里的代权指的边的长度,这与以前的不代权的最小树生成算法有很大的区别。 算法描述如下转载 2013-10-14 14:37:35 · 1104 阅读 · 0 评论 -
图-每一对端点间的最小距离
与传递闭包问题 非常相似的一个问题是,能不能给出一个矩阵,根据矩阵可以以时间代价O(n)的方式得到在一个有向代权图中任意指定端点之间的最短距离。求的这个矩阵的问题被称为每一对端点间的最小距离问题。 这里采用的是Floyd算法,它与WalShall 算法非常相似: 如果A可以到达B,距离为x,且C可以到达A,距离为y,则求得C可以到达B,距离为 z = x + y,z小于如果c到B的原来转载 2013-10-14 14:36:56 · 871 阅读 · 0 评论 -
图-传递闭包
图的传递闭包是指修正后的邻接矩阵表示的图。(见Graph 图-邻接矩阵法 ) 在多个顶点的有向图中,每个顶点可以到按照方向到达一定的节点,这叫图的连通性。有种方法直接告诉我们,图中的两个节点是否可以联通,这里说的是WarShall算法。 WarShall的基本原理是,如果A可以到达B,且C可以到达A,则C可以到达B。通过对邻接矩阵的修正可以做到这点。随然这里举例是将两步可并成一步,但数转载 2013-10-14 14:36:02 · 4683 阅读 · 0 评论 -
图-最小路径
这里使用的是Dijkstra来计算最短路径。事实上Dijkstra完成时,指定节点到所有节点的最小路径均已求出。 算法简述如下: 准备好两个辅助性数据结构: 1 ParentLength : 用来记录到当前节点之前的父节点,与到当前节点的最小路径 2 Path: 记录指定节点到所有节点的ParentLength。初始化时,所有的ParentLength的父节点都为指定的起始转载 2013-10-14 14:28:54 · 946 阅读 · 0 评论 -
拓扑排序 (java)
// topo.java // demonstrates topological sorting // to run this program: C>java TopoApp //////////////////////////////////////////////////////////////// // 思想:1.找有向图中无后继的节点 2.删除该转载 2013-10-14 14:28:25 · 617 阅读 · 0 评论 -
图-最小树
如果一个图中所有点都是联通的,求最小树可以将图遍历完成,这里的最小是指边最少,跟边长没有关系。 算法利用深度优先遍历,记载每个遍历过的节点,将节点按照遍历顺序记录下来就是所谓的最小树。 关于深度优先遍历请参见深度优先遍历。 不过这里奇怪的是: 假如所有节点之间是双向联通的,只用生成一个数组,装入所有的节点,例如{'a','b','c','d','d'} 然后每两个点之转载 2013-10-14 14:33:44 · 865 阅读 · 0 评论 -
java AOE网与关键路径
通常我们用有向图表示一个工程。在这种有向图中,用顶点表示活动,用有向边 表示活动Vi必须先于活动Vj进行。如果在无有向环的带权有向图中用有向边表示一个工程中的各项活动 (ACTIVITY),用有向边上的权值表示活动的持续时间(DURATION),用顶点表示事件(EVENT),则这种的有向图叫做用边表示活动的网 络,简称AOE(active on edges)网络。 AOE网络在转载 2013-10-14 14:25:38 · 2464 阅读 · 0 评论 -
java 图的深度优先与广度优先排序
一个图包括两部分信息:顶点的信息以及描述顶点之间关系的信息。 图的邻接矩阵存储也称数组表示法,其方法是用一个一维数组存储图中顶点的信息,用一个二维数组存储图中边的信息,存储顶点之间邻接关系的二维数组称为邻接矩阵。 用邻接矩阵存储图 1. 确定图的顶点个数和边的个数 2. 输入顶点信息存储在一维数组 vertex 中 3. 初始化邻接转载 2013-10-14 14:24:40 · 1082 阅读 · 0 评论 -
java 图的拓扑排序(利用Vector存储)
Stack类: Java代码 package com.javaeye.rsrt; /** * 栈,遵循先进后出的原则,用来保存元素 * * @author nishiting * */ public class Stack { private int[] st; private i转载 2013-10-14 14:23:29 · 1011 阅读 · 1 评论 -
java数据结构_笔记(4)_图
图 一、概念。 图: 是一种复杂的非线性数据结构。 图的二元组定义: 图 G 由两个集合 V 和 E 组成,记为: G=(V, E) 其中: V 是顶点的有穷非空集合, E 是 V 中顶点偶对(称为边)的有穷集。 通常,也将图 G 的顶点集和边集分别记为 V(G) 和 E(G) 。 E(G) 可以是空集。若 E(G) 为空,则图 G 只有顶点而没有边。转载 2013-10-14 15:06:08 · 1099 阅读 · 0 评论 -
图-拓扑排序
当每个任务有前后置关系时,需要找到一种满足前后置关系的路线,将任务完成。 如果将每个任务看成一个节点,任务之间的前后置关系表示为有向图时,这种路线顺序叫做为图进行拓扑排序。也叫关键路径分析。 这里的图用邻接矩阵法表示,算法的关键是: 1 找到一个没有后继的顶点 2 在图中删除它,放入结果数组中 3 重复 步骤 1 ,步骤 2 直到图中没有多余的节点。 如果图中出转载 2013-10-14 14:34:49 · 613 阅读 · 0 评论 -
java数据结构_笔记(5)_图的算法续
图的算法续 上一篇 5 最短距离 在许多应用领域,带权图都被用来描述某个网络,比如通信网络、交通网络。这种情况下,各边的权重就对应于两点之间通信的成本或交通费用。此时,一类典型的问题就是:在任意指定的两点之间如果存在通路,那么最小的消费是多少。这类问题实际上就是带权图中两点之间最短路径的问题。 对于求解最短路径问题:A)有时应当是有向图:如同一信道两个方向的信息流量不转载 2013-10-15 11:08:39 · 613 阅读 · 0 评论