java建立有向弧,数据结构(JAVA)--图

1、典型应用场景:高速公路交通网编程

2、定义:一系列顶点和描述顶点之间关系的边(弧)组成图G。图是数据元素的集合

G=(V,E)

V是顶点集合,E是边或者弧的集合。有向图和无向图(区别为连接顶点的边是否有向,即(Vi,Vj)与(Vj,Vi)是否相同),带权图和不带权图(区别为边是否有带有权重)

度:无向图中度为连接顶点的边或弧的数

出度:有向图中从顶点出发的边数

入度:有向图中指向该顶点的边数

权:边上带的数据信息,表示两个顶点之间的关系

边:无向

弧:有向,分弧头弧尾

有向完全图:任意两个顶点之间是弧相连的,有n(n-1)条弧

无向完全图:任意两个顶点之间是边连接,边数为n(n-1)/2

稠密图和稀疏图:取决于边的数,相对而言

3、图的基本操作

插入顶点

查找顶点

删除顶点

插入边

查找边

删除边

求 图的边数

求图的定点数

遍历图

求最短路径

4、图的抽象数据类型

ADT图接口

数据元素:具有相同数据类型的数据元素集合

数据结构:数据元素之间通过边或弧连接形成网络

数据操作: 将数据操作定义在接口中MyGraph:

public interface MyGraph

{

public int getNumOfVertex(); //获取顶点个数

boolean insertVex(E v); //插入顶点

boolean deleteVex(E v); //删除顶点

int indexOfVex(E v); //定位顶点位置

E valueOfVex(int v); //定位指定位置的顶点

boolean insertEdge(int v1,int v2,int weight); //插入边

boolean deleteEdge(int v1,int v2); //删除边

public int getEdge(int v1,int v2); //获取边

String depthFirstSearch(int v); //深度优先搜索遍历

String breadFirstSearch(int v); //广度优先搜索遍历

public int[] dijkstra(int v); //查找源点到其他点的最短路径

}

5、图的实现

5.1 用邻接矩阵实现图

邻接矩阵

你可能感兴趣的:(java建立有向弧)