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

📄 graph.java

📁 一个查找java程序里bug的程序的源代码,该程序本身也是java写的,对提高java编程水平很有用
💻 JAVA
字号:
/* * Generic graph library * Copyright (C) 2000,2003,2004 University of Maryland *  * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */// $Revision: 1.13 $package edu.umd.cs.findbugs.graph;import java.util.*;/** * Graph interface; defines the operations used to access and manipulate * a graph. */public interface Graph        <        EdgeType extends GraphEdge<EdgeType, VertexType>,        VertexType extends GraphVertex<VertexType>        > {	/**	 * Get number of edges in the graph.	 */	public int getNumEdges();	/**	 * Get number of vertices in the graph.	 */	public int getNumVertices();	/**	 * Get Iterator over all edges in the graph.	 */	public Iterator<EdgeType> edgeIterator();	/**	 * Get Iterator over all vertices in the graph.	 */	public Iterator<VertexType> vertexIterator();	/**	 * Add given vertex to the graph.	 * The vertex should not be part of any other graph.	 *	 * @param v the vertex to add	 */	public void addVertex(VertexType v);	/**	 * Determine if the graph contains the given vertex.	 *	 * @param v the vertex	 * @return true if the vertex is part of the graph, false if not	 */	public boolean containsVertex(VertexType v);	/**	 * Add a new edge to the graph.	 * Duplicate edges (with same source and target vertices) are allowed.	 *	 * @param source the source vertex	 * @param target the target vertex	 * @return the new edge	 */	public EdgeType createEdge(VertexType source, VertexType target);	/**	 * Look up an edge by source and target vertex.	 * If multiple edges with same source and target vertex exist,	 * one is selected arbitrarily.	 *	 * @param source the source vertex	 * @param target the target vertex	 * @return a matching edge, or null if there is no matching edge	 */	public EdgeType lookupEdge(VertexType source, VertexType target);	/**	 * Get the number of numeric (integer) labels that have been assigned to vertices	 * in the graph.  All vertices in the graph are guaranteed to have labels in the	 * range 0..n, where n is the value returned by this method.	 */	public int getNumVertexLabels();	/**	 * Reset number of (integer) labels.  This might be necessary	 * if an algorithm has assigned new labels to a graph's vertices.	 */	public void setNumVertexLabels(int numLabels);	/**	 * Get the number of numeric labels that have been assigned to edges.	 */	public int getNumEdgeLabels();	/**	 * Reset the number of edge labels.	 */	public void setNumEdgeLabels(int numLabels);	/**	 * Remove given edge from the graph.	 */	public void removeEdge(EdgeType e);	/**	 * Remove given vertex from the graph.	 * Note that all edges referencing the vertex will be	 * removed.	 */	public void removeVertex(VertexType v);	/**	 * Get an Iterator over outgoing edges from given vertex.	 *	 * @param source the source vertex	 * @return an Iterator over outgoing edges	 */	public Iterator<EdgeType> outgoingEdgeIterator(VertexType source);	/**	 * Get an Iterator over incoming edges to a given vertex.	 *	 * @param target the target vertex	 * @return an Iterator over incoming edges	 */	public Iterator<EdgeType> incomingEdgeIterator(VertexType target);	/**	 * Get number of edges going into given vertex.	 *	 * @param vertex the vertex	 * @return number of edges going into the vertex	 */	public int getNumIncomingEdges(VertexType vertex);	/**	 * Get number of edges going out of given vertex.	 *	 * @param vertex the vertex	 * @return number of edges going out of the vertex	 */	public int getNumOutgoingEdges(VertexType vertex);	/**	 * Get an iterator over the successors of this vertex;	 * i.e., the targets of the vertex's outgoing edges.	 *	 * @param source the source vertex	 * @return an Iterator over the successors of the vertex	 */	public Iterator<VertexType> successorIterator(VertexType source);	/**	 * Get an iterator over the predecessors of this vertex;	 * i.e., the sources of the vertex's incoming edges.	 *	 * @param target the target vertex	 * @return an Iterator over the predecessors of the vertex	 */	public Iterator<VertexType> predecessorIterator(VertexType target);}// vim:ts=4

⌨️ 快捷键说明

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