⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph.java

📁 个人学习图算法时写的源码 包括最小生成树, 最大网络流, DSF遍历, BSF遍历,
💻 JAVA
字号:
package twf.weightedgraph.adjmatrix;

import twf.weightedgraph.AdjList;
import twf.weightedgraph.Edge;

public class Graph implements twf.weightedgraph.Graph{
	private int Vcnt, Ecnt;
    private boolean digraph;
    private Edge adj[][];
    public Graph(int V, boolean flag)
      {
        Vcnt = V; Ecnt = 0; digraph = flag;
        adj = new Edge[V][V];
      }
    public int V() { return Vcnt; }
    public int E() { return Ecnt; }
    public boolean directed() { return digraph; }
    public void insert(Edge e)
      { int v = e.v(), w = e.w();
        if (adj[v][w] == null) Ecnt++;
        adj[v][w] = e;
        if (!digraph) adj[w][v] = e;
      }
    public void remove(Edge e)
      { int v = e.v(), w = e.w();
        if (adj[v][w] == null) Ecnt--;
        adj[v][w] = null;
        if (!digraph) adj[w][v] = null;
      }
    public Edge edge(int v, int w)
      { return adj[v][w]; }	
	
	public AdjList getAdjList(int v) {
		// TODO Auto-generated method stub
		return new AdjArray(v);
	}	
	private class AdjArray implements AdjList {
		private int t, v;
		public AdjArray(int v) {
			this.v = v;
		}
		public Edge beg() {
			// TODO Auto-generated method stub
			t = -1;
			return nxt();
		}

		public boolean end() {
			// TODO Auto-generated method stub
			return t >= V();
		}

		public Edge nxt() {
			// TODO Auto-generated method stub
			for (t++; t < V(); t++)
		          if (edge(v, t) != null)
		            return edge(v, t);
		    return null;

		}
		
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -