类 SymbolGraph


  • public class SymbolGraph
    extends java.lang.Object
    The SymbolGraph class represents an undirected graph, where the vertex names are arbitrary strings. By providing mappings between string vertex names and integers, it serves as a wrapper around the Graph data type, which assumes the vertex names are integers between 0 and V - 1. It also supports initializing a symbol graph from a file.

    This implementation uses an ST to map from strings to integers, an array to map from integers to strings, and a Graph to store the underlying graph. The indexOf and contains operations take time proportional to log V, where V is the number of vertices. The nameOf operation takes constant time.

    For additional documentation, see Section 4.1 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.

    • 构造器概要

      构造器 
      构造器 说明
      SymbolGraph​(java.lang.String filename, java.lang.String delimiter)
      Initializes a graph from a file using the specified delimiter.
    • 方法概要

      修饰符和类型 方法 说明
      boolean contains​(java.lang.String s)
      Does the graph contain the vertex named s?
      Graph G()
      已过时。
      Replaced by graph().
      Graph graph()
      Returns the graph assoicated with the symbol graph.
      int index​(java.lang.String s)
      已过时。
      Replaced by indexOf(String).
      int indexOf​(java.lang.String s)
      Returns the integer associated with the vertex named s.
      static void main​(java.lang.String[] args)
      Unit tests the SymbolGraph data type.
      java.lang.String name​(int v)
      已过时。
      Replaced by nameOf(int).
      java.lang.String nameOf​(int v)
      Returns the name of the vertex associated with the integer v.
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • SymbolGraph

        public SymbolGraph​(java.lang.String filename,
                           java.lang.String delimiter)
        Initializes a graph from a file using the specified delimiter. Each line in the file contains the name of a vertex, followed by a list of the names of the vertices adjacent to that vertex, separated by the delimiter.
        参数:
        filename - the name of the file
        delimiter - the delimiter between fields
    • 方法详细资料

      • contains

        public boolean contains​(java.lang.String s)
        Does the graph contain the vertex named s?
        参数:
        s - the name of a vertex
        返回:
        true if s is the name of a vertex, and false otherwise
      • index

        @Deprecated
        public int index​(java.lang.String s)
        已过时。
        Replaced by indexOf(String).
        Returns the integer associated with the vertex named s.
        参数:
        s - the name of a vertex
        返回:
        the integer (between 0 and V - 1) associated with the vertex named s
      • indexOf

        public int indexOf​(java.lang.String s)
        Returns the integer associated with the vertex named s.
        参数:
        s - the name of a vertex
        返回:
        the integer (between 0 and V - 1) associated with the vertex named s
      • name

        @Deprecated
        public java.lang.String name​(int v)
        已过时。
        Replaced by nameOf(int).
        Returns the name of the vertex associated with the integer v.
        参数:
        v - the integer corresponding to a vertex (between 0 and V - 1)
        返回:
        the name of the vertex associated with the integer v
        抛出:
        java.lang.IllegalArgumentException - unless 0 <= v < V
      • nameOf

        public java.lang.String nameOf​(int v)
        Returns the name of the vertex associated with the integer v.
        参数:
        v - the integer corresponding to a vertex (between 0 and V - 1)
        返回:
        the name of the vertex associated with the integer v
        抛出:
        java.lang.IllegalArgumentException - unless 0 <= v < V
      • G

        @Deprecated
        public Graph G()
        已过时。
        Replaced by graph().
        Returns the graph assoicated with the symbol graph. It is the client's responsibility not to mutate the graph.
        返回:
        the graph associated with the symbol graph
      • graph

        public Graph graph()
        Returns the graph assoicated with the symbol graph. It is the client's responsibility not to mutate the graph.
        返回:
        the graph associated with the symbol graph
      • main

        public static void main​(java.lang.String[] args)
        Unit tests the SymbolGraph data type.
        参数:
        args - the command-line arguments