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 用邻接矩阵实现图

邻接矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值