为算法考试做准备--图论顶点定义实现
来源:互联网 发布:informix数据库下载 编辑:程序博客网 时间:2024/05/05 02:32
package utils;public class MyVertex<T> {private T value;private boolean visited;private MyArrayList<MyEdge<T>> adjEdges;//以本顶点为起点的边private int inDegree;//入度,即有多少边以此顶点作为终点private int topNum; //拓扑排序的编号public MyVertex(T v) {value = v;}public void setValue(T v) {value = v;}public T getValue() {return value;}public void setVisited(boolean visited) {this.visited = visited;}public boolean ifVisited() {return visited;}public void setInDegree(int indegree) {inDegree = indegree;}public int getInDegree() {return inDegree;}public void setTopNum(int topNum) {this.topNum = topNum;}public int getTopNum() {return topNum;}public void addAdjEdge(MyEdge<T> edge) {if (adjEdges == null) {adjEdges = new MyArrayList<MyEdge<T>>();}adjEdges.add(edge);//增加边终点的入度edge.eVert.inDegree++;}public int getEdgeNum() {if (adjEdges == null) return 0;return adjEdges.size();}public MyEdge<T> getEdge(int idx) {if (adjEdges == null) return null;return adjEdges.get(idx);}public MyEdge<T> getEdge(MyVertex<T> eVert) {MyEdge<T> result = null;for (int i = 0; i < adjEdges.size(); ++i) {if (adjEdges.get(i).eVert.equals(eVert)) {result = adjEdges.get(i);break;}}return result;}public MyEdge<T> removeEdge(MyVertex<T> eVert) {MyEdge<T> result = null;for (int i = 0; i < adjEdges.size(); ++i) {if (adjEdges.get(i).eVert.equals(eVert)) {result = adjEdges.remove(i);//减少边终点的入度result.eVert.inDegree--;break;}}return result;}@Overridepublic int hashCode() {int result = 0;result = 37 * result + value.hashCode();return result;}@Overridepublic boolean equals(Object obj) {if (!(obj instanceof MyVertex)) {return false;}if (value.equals(((MyVertex<T>)obj).value)) {return true;}return false;}}
0 0
- 为算法考试做准备--图论顶点定义实现
- 为算法考试做准备--ArrayList实现
- 为算法考试做准备--图论边的定义
- 为算法考试做准备--队列实现Queue
- 为算法考试做准备--栈(Stack)实现
- 为算法考试做准备--图的实现及广度和深度优先搜索实现
- 为算法考试做准备--快速排序以及找第K大数的实现
- 为未来做准备
- 为实习做准备
- 为面试做准备!!
- 为WDF做准备
- 为2016做准备
- 【算法题目集锦】为找工作做准备的
- 微调您的软件定义型数据中心, 为使用 OpenStack 平台做准备
- 中国经济为着陆做准备
- 为实习笔试做准备
- 为面试做的准备~
- [置顶] 为毕业做准备
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
- CString与int的转换(Unicode与多字节字符集)
- 6.3 临时对象
- ZJOI2008树的统计bzoj1036
- AsyncTask 源码阅读
- 为算法考试做准备--图论顶点定义实现
- UIBezierPath + CAShapeLayer (弧形 + 线条)
- 输出thinkphp中数据库操作对应的sql语句
- 服务过程中会遇到的问题
- 为算法考试做准备--图论边的定义
- 解析STM32启动过程
- ThisRotate 物体旋转 unity3d
- netfilter/iptables全攻略
- UI 13 SD的简单使用 &UIActionSheet_从相册获取图片