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

📄 graph.java

📁 Classes composed of directed weighted graph.
💻 JAVA
字号:
/**
 * @(#)Graph.java
 *
 *
 * @author 
 * @version 1.00 2007/3/1
 */

import java.util.*;

public class Graph {
	
	public final int MAX = 100;
	
	int[][]  matrix;
	int[][]  matrixCost;
	int vertices;
	int edges;
	
    public Graph() {
    	matrix = new int[MAX] [MAX];
    	matrixCost = new int[MAX] [MAX];	
    	vertices = edges = 0;
    }
 
    public Graph(int x) {
    	matrix = new int[x+1] [x+1];
    	matrixCost = new int[x+1] [x+1];
    	vertices = edges = 0;	
    }
    
    public int getVertices() {
    	return vertices;
    }
    
    public int getEdges() {
    	return edges;
    }
    
    public void addEdge(Edge e) {
    	
    	incrementEdges();
    	matrix[e.getV1().el] [e.getV2().el] = 1;
    	matrixCost[e.getV1().el] [e.getV2().el] = 1;
    	
    }
    
    public void incrementEdges() {
    	edges++;
    }
    
    public void incrementVertices() {
    	vertices++;
    }
    
    public void initializeMatrix() {
    	
    	for(int i=0; i<matrix.length;i++ ) {
    		for(int j=0; j<matrix.length; j++) 
    			matrix[i][j] = 0;
    	}
    	for(int i=0; i<matrix.length;i++ ) {
    		for(int j=0; j<matrix.length; j++) 
    			matrix[i][j] = 0;
    	}
    }
    
    public void displayMatrix() {
    	
    	for(int i=0; i<matrix.length;i++ ) {
    		for(int j=0; j<matrix.length; j++) 
    			System.out.print(matrix[i][j] + " ");
    		System.out.println();
    	}
    }
    
    // get the list of vertices
    
    public Vector getVertexList() {
    	
    	Vector list = new Vector();
    	for(int i=0; i<matrix.length;i++ ) {
    		for(int j=0; j<matrix.length; j++) 
    			if (matrix[i][j] == 1) {
    				list.add(new Vertex(i));
    				break;
    			}
    	}
    	return list;
    }
    
     // get the list of edges
    
    public Vector getEdgeList() {
    	
    	Vector list = new Vector();
    	for(int i=0; i<matrix.length;i++ ) {
    		for(int j=0; j<matrix.length; j++) 
    			if (matrix[i][j] == 1) {
    				Vertex v1 = new Vertex(i);
    				Vertex v2 = new Vertex(j);
    				list.add(new Edge(v1,v2));
    			}
    	}
    	return list;
    }
    public void augmentPath(int s, int t)
    {
    	
    }
    
    public boolean modifiedDijkstraAlgorithm(int s , int t)
    {
    	
    }
    
    public void maxFloxMinCostAlgorithm(int s, int t)
    {
    	while(modifiedDijkstraAlgorithm(s,t)==true)
    	{
    		augmentPath(s,t);
    	}
    }
}  //end Graph

⌨️ 快捷键说明

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