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

📄 directedacyclicgraphimpl.java

📁 OpenJGraph是一个开源的Java库
💻 JAVA
字号:
package salvo.jesus.graph;

import java.util.*;
import salvo.jesus.graph.algorithm.*;
import salvo.jesus.graph.listener.*;

/**
 * The DirectedAcyclicGraph class represents a directed acyclic graph (DAG)
 * where there is no cyclic paths for any of its vertices.
 *
 * A cylic path is a path from a vertex back to itself by following the
 * direction of the edges.
 *
 * @author		Jesus M. Salvo Jr.
 */

public class DirectedAcyclicGraphImpl extends DirectedGraphImpl implements DirectedAcyclicGraph {
  /**
   * Delegate object to handle topological sorting
   */
  private TopologicalSorting topologicalsorting;

  private DirectedAcyclicGraphListener listener;
    
  /**
   * Creates a DirectedAcyclicGraph object.
   */
  public DirectedAcyclicGraphImpl() {
    super();
    topologicalsorting = new TopologicalSorting( this );
    listener = new DirectedAcyclicGraphListener(this);
  }

  /**
   * @see DirectedAcyclicGraph#getRoot
   */
  public List getRoot( ){
      return listener.getRoot();
  }

  /**
   * @see TopologicalSorting#traverse()
   */
  public List topologicalSort( ){
    return this.topologicalsorting.traverse();
  }

  /**
   * @see TopologicalSorting#reverseTraverse()
   */
  public List reverseTopologicalSort( ){
    return this.topologicalsorting.reverseTraverse();
  }

  /**
   * @see TopologicalSorting#traverse(Vertex)
   */
  public List topologicalSort( Vertex startat ){
    return this.topologicalsorting.traverse( startat );
  }

  /**
   * @see TopologicalSorting#reverseTraverse(Vertex)
   */
  public List reverseTopologicalSort( Vertex startat ){
    return this.topologicalsorting.reverseTraverse( startat );
  }

}

⌨️ 快捷键说明

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