前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >加权有向图----加权有向图的实现

加权有向图----加权有向图的实现

作者头像
SuperHeroes
发布2018-05-30 17:55:20
1.6K0
发布2018-05-30 17:55:20
举报
文章被收录于专栏:云霄雨霁云霄雨霁

可以对比加权无向图的实现

加权有向边API:

public class DirectedEdge DirectedEdge(int v,int w,double weight)         double weight()        边的权重 int form()        指出这条边的顶点 int to()        这条边指向的顶点 String toString()        对象的字符串表示

实现:

代码语言:javascript
复制
public class DirectedEdge {
	private int v;
	private int w;
	private double weight;
	
	public DirectedEdge(int v,int w,double weight) {
		this.v = v;this.w = w;this.weight = weight;
	}
	public double weight(){  return weight;  }
	public int form(){  return v;  }
	public int to(){  return w;  }
    public String toString(){  return String.format("%d->%d %.2f", v,w,weight);  }
}

加权有向图API:

public class EdgeWeightedDigraph EdgeWeightedDigraph(int v)        含有V个顶点的空有向图 int V()        顶点总数 int E()        边的总数 void addEdge(DirectedEdge e)        将e添加到该有向图中 Iterable<DirectedEdge> adj(int v)        从v指出的边 Iterable<DirectedEdge> edges()        该有向图中的所有边 String toString()        对象的字符串表示

实现:

代码语言:javascript
复制
public class EdgeWeightedDigraph {
	private int V;//顶点数
	private int E;//边数
	private Bag<DirectedEdge>[] adj;//邻接表
	public EdgeWeightedDigraph(int V) {
		this.V = V;
		this.E = 0;
		adj = (Bag<DirectedEdge>[]) new Bag[V];
		for(int v=0;v< V;v++) {
			adj[v] = new Bag<DirectedEdge>();
		}
	}
	public int V() {return V;}
	public int E() {return E;}
	
	public void addEdge(DirectedEdge e) {
		adj[e.form()].add(e);
		E++;
	}
    //从v指出的边
	public Iterable<DirectedEdge> adj(int v){return adj[v];}
    //该有向图中所有的边
	public Iterable<DirectedEdge> edges(){
		Bag<DirectedEdge> bag = new Bag<DirectedEdge>();
		for(int v = 0; v<V; v++)
			for(DirectedEdge e : adj[v])
				bag.add(e);
		return bag;
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档