类 SymbolDigraph
- java.lang.Object
-
- edu.princeton.cs.algs4.SymbolDigraph
-
public class SymbolDigraph extends java.lang.Object
TheSymbolDigraph
class represents a digraph, where the vertex names are arbitrary strings. By providing mappings between string vertex names and integers, it serves as a wrapper around theDigraph
data type, which assumes the vertex names are integers between 0 and V - 1. It also supports initializing a symbol digraph from a file.This implementation uses an
ST
to map from strings to integers, an array to map from integers to strings, and aDigraph
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.2 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
-
-
构造器概要
构造器 构造器 说明 SymbolDigraph(java.lang.String filename, java.lang.String delimiter)
Initializes a digraph from a file using the specified delimiter.
-
方法概要
修饰符和类型 方法 说明 boolean
contains(java.lang.String s)
Does the digraph contain the vertex nameds
?Digraph
digraph()
Returns the digraph assoicated with the symbol graph.Digraph
G()
已过时。Replaced bydigraph()
.int
index(java.lang.String s)
已过时。Replaced byindexOf(String)
.int
indexOf(java.lang.String s)
Returns the integer associated with the vertex nameds
.static void
main(java.lang.String[] args)
Unit tests theSymbolDigraph
data type.java.lang.String
name(int v)
已过时。Replaced bynameOf(int)
.java.lang.String
nameOf(int v)
Returns the name of the vertex associated with the integerv
.
-
-
-
构造器详细资料
-
SymbolDigraph
public SymbolDigraph(java.lang.String filename, java.lang.String delimiter)
Initializes a digraph 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 filedelimiter
- the delimiter between fields
-
-
方法详细资料
-
contains
public boolean contains(java.lang.String s)
Does the digraph contain the vertex nameds
?- 参数:
s
- the name of a vertex- 返回:
true
ifs
is the name of a vertex, andfalse
otherwise
-
index
@Deprecated public int index(java.lang.String s)
已过时。Replaced byindexOf(String)
.Returns the integer associated with the vertex nameds
.- 参数:
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 nameds
.- 参数:
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 bynameOf(int)
.Returns the name of the vertex associated with the integerv
.- 参数:
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
- unless0 <= v < V
-
nameOf
public java.lang.String nameOf(int v)
Returns the name of the vertex associated with the integerv
.- 参数:
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
- unless0 <= v < V
-
G
@Deprecated public Digraph G()
已过时。Replaced bydigraph()
.Returns the digraph assoicated with the symbol graph. It is the client's responsibility not to mutate the digraph.- 返回:
- the digraph associated with the symbol digraph
-
digraph
public Digraph digraph()
Returns the digraph assoicated with the symbol graph. It is the client's responsibility not to mutate the digraph.- 返回:
- the digraph associated with the symbol digraph
-
main
public static void main(java.lang.String[] args)
Unit tests theSymbolDigraph
data type.- 参数:
args
- the command-line arguments
-
-