C# 클래스 FastGraph.BidirectionalGraph

상속: IEdgeListAndIncidenceGraph, IMutableBidirectionalGraph, ICloneable
파일 보기 프로젝트 열기: brucificus/FastGraph

Private Properties

프로퍼티 타입 설명
AddEdgeInternal bool
Clone TEdge>.BidirectionalGraph
ICloneable object
NotifyEdgesRemoved void
NotifyVerticesRemoved void
RemoveEdgesInternal int
RemoveInOutEdges IEnumerable

공개 메소드들

메소드 설명
AddEdge ( edge ) : bool
AddEdgeRange ( IEnumerable edges ) : int
AddVertex ( vertex ) : bool
AddVertexRange ( IEnumerable vertices ) : int
AddVerticesAndEdge ( edge ) : bool
AddVerticesAndEdgeRange ( IEnumerable edges ) : int
BidirectionalGraph ( ) : System

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.

BidirectionalGraph ( BidirectionalGraph other ) : System

Copy constructor that creates sufficiently deep copy of the graph.

BidirectionalGraph ( bool allowParallelEdges ) : System

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.

BidirectionalGraph ( bool allowParallelEdges, int capacity ) : System

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.

BidirectionalGraph ( bool allowParallelEdges, int vertexCapacity, int edgeCapacity ) : System

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.

Clear ( ) : void
ClearEdges ( vertex ) : void
ClearInEdges ( vertex ) : void
ClearOutEdges ( vertex ) : void
ContainsEdge ( edge ) : bool
ContainsEdge ( source, target ) : bool
ContainsVertex ( vertex ) : bool
Degree ( vertex ) : int
InDegree ( vertex ) : int
InEdge ( vertex, int index ) : TEdge
InEdges ( vertex ) : IEnumerable
IsInEdgesEmpty ( vertex ) : bool
IsOutEdgesEmpty ( vertex ) : bool
MergeVertex ( vertex, EdgeFactory edgeFactory ) : void

Removes the given vertex and merges all its connection to other vertices.

MergeVerticesIf ( VertexPredicate vertexPredicate, EdgeFactory edgeFactory ) : void

Removes vertices matching the given vertexPredicate and merges all their connections to other vertices.

OutDegree ( vertex ) : int
OutEdge ( vertex, int index ) : TEdge
OutEdges ( vertex ) : IEnumerable
RemoveEdge ( edge ) : bool
RemoveEdgeIf ( EdgePredicate predicate ) : int
RemoveInEdgeIf ( vertex, EdgePredicate predicate ) : int
RemoveOutEdgeIf ( vertex, EdgePredicate predicate ) : int
RemoveVertex ( vertex ) : bool
RemoveVertexIf ( VertexPredicate predicate ) : int
TrimEdgeExcess ( ) : void
TryGetEdge ( source, target, &edge ) : bool
TryGetEdges ( source, target, IEnumerable &edges ) : bool
TryGetInEdges ( vertex, IEnumerable &edges ) : bool
TryGetOutEdges ( vertex, IEnumerable &edges ) : bool

보호된 메소드들

메소드 설명
OnEdgeAdded ( edge ) : void

Called on each added edge.

OnEdgeRemoved ( edge ) : void

Called on each removed edge.

OnVertexAdded ( vertex ) : void

Called on each added vertex.

OnVertexRemoved ( vertex ) : void

Called for each removed vertex.

비공개 메소드들

메소드 설명
AddEdgeInternal ( edge ) : bool
Clone ( ) : TEdge>.BidirectionalGraph
ICloneable ( ) : object
NotifyEdgesRemoved ( IEnumerable edges ) : void
NotifyVerticesRemoved ( ICollection vertices ) : void
RemoveEdgesInternal ( ICollection edgesToRemove ) : int
RemoveInOutEdges ( vertex ) : IEnumerable

메소드 상세

AddEdge() 공개 메소드

public AddEdge ( edge ) : bool
리턴 bool

AddEdgeRange() 공개 메소드

public AddEdgeRange ( IEnumerable edges ) : int
edges IEnumerable
리턴 int

AddVertex() 공개 메소드

public AddVertex ( vertex ) : bool
리턴 bool

AddVertexRange() 공개 메소드

public AddVertexRange ( IEnumerable vertices ) : int
vertices IEnumerable
리턴 int

AddVerticesAndEdge() 공개 메소드

public AddVerticesAndEdge ( edge ) : bool
리턴 bool

AddVerticesAndEdgeRange() 공개 메소드

public AddVerticesAndEdgeRange ( IEnumerable edges ) : int
edges IEnumerable
리턴 int

BidirectionalGraph() 공개 메소드

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.
public BidirectionalGraph ( ) : System
리턴 System

BidirectionalGraph() 공개 메소드

Copy constructor that creates sufficiently deep copy of the graph.
public BidirectionalGraph ( BidirectionalGraph other ) : System
other BidirectionalGraph Graph to copy.
리턴 System

BidirectionalGraph() 공개 메소드

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.
public BidirectionalGraph ( bool allowParallelEdges ) : System
allowParallelEdges bool Indicates if parallel edges are allowed.
리턴 System

BidirectionalGraph() 공개 메소드

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.
public BidirectionalGraph ( bool allowParallelEdges, int capacity ) : System
allowParallelEdges bool Indicates if parallel edges are allowed.
capacity int Vertex capacity.
리턴 System

BidirectionalGraph() 공개 메소드

Initializes a new instance of the BidirectionalGraph{TVertex,TEdge} class.
public BidirectionalGraph ( bool allowParallelEdges, int vertexCapacity, int edgeCapacity ) : System
allowParallelEdges bool Indicates if parallel edges are allowed.
vertexCapacity int Vertex capacity.
edgeCapacity int Edge capacity.
리턴 System

Clear() 공개 메소드

public Clear ( ) : void
리턴 void

ClearEdges() 공개 메소드

public ClearEdges ( vertex ) : void
리턴 void

ClearInEdges() 공개 메소드

public ClearInEdges ( vertex ) : void
리턴 void

ClearOutEdges() 공개 메소드

public ClearOutEdges ( vertex ) : void
리턴 void

ContainsEdge() 공개 메소드

public ContainsEdge ( edge ) : bool
리턴 bool

ContainsEdge() 공개 메소드

public ContainsEdge ( source, target ) : bool
리턴 bool

ContainsVertex() 공개 메소드

public ContainsVertex ( vertex ) : bool
리턴 bool

Degree() 공개 메소드

public Degree ( vertex ) : int
리턴 int

InDegree() 공개 메소드

public InDegree ( vertex ) : int
리턴 int

InEdge() 공개 메소드

public InEdge ( vertex, int index ) : TEdge
index int
리턴 TEdge

InEdges() 공개 메소드

public InEdges ( vertex ) : IEnumerable
리턴 IEnumerable

IsInEdgesEmpty() 공개 메소드

public IsInEdgesEmpty ( vertex ) : bool
리턴 bool

IsOutEdgesEmpty() 공개 메소드

public IsOutEdgesEmpty ( vertex ) : bool
리턴 bool

MergeVertex() 공개 메소드

Removes the given vertex and merges all its connection to other vertices.
is . is . is not part of the graph.
public MergeVertex ( vertex, EdgeFactory edgeFactory ) : void
vertex The vertex.
edgeFactory EdgeFactory Factory method to create an edge.
리턴 void

MergeVerticesIf() 공개 메소드

Removes vertices matching the given vertexPredicate and merges all their connections to other vertices.
is . is .
public MergeVerticesIf ( VertexPredicate vertexPredicate, EdgeFactory edgeFactory ) : void
vertexPredicate VertexPredicate Predicate to match vertices.
edgeFactory EdgeFactory Factory method to create an edge.
리턴 void

OnEdgeAdded() 보호된 메소드

Called on each added edge.
protected OnEdgeAdded ( edge ) : void
edge Added edge.
리턴 void

OnEdgeRemoved() 보호된 메소드

Called on each removed edge.
protected OnEdgeRemoved ( edge ) : void
edge Removed edge.
리턴 void

OnVertexAdded() 보호된 메소드

Called on each added vertex.
protected OnVertexAdded ( vertex ) : void
vertex Added vertex.
리턴 void

OnVertexRemoved() 보호된 메소드

Called for each removed vertex.
protected OnVertexRemoved ( vertex ) : void
vertex Removed vertex.
리턴 void

OutDegree() 공개 메소드

public OutDegree ( vertex ) : int
리턴 int

OutEdge() 공개 메소드

public OutEdge ( vertex, int index ) : TEdge
index int
리턴 TEdge

OutEdges() 공개 메소드

public OutEdges ( vertex ) : IEnumerable
리턴 IEnumerable

RemoveEdge() 공개 메소드

public RemoveEdge ( edge ) : bool
리턴 bool

RemoveEdgeIf() 공개 메소드

public RemoveEdgeIf ( EdgePredicate predicate ) : int
predicate EdgePredicate
리턴 int

RemoveInEdgeIf() 공개 메소드

public RemoveInEdgeIf ( vertex, EdgePredicate predicate ) : int
predicate EdgePredicate
리턴 int

RemoveOutEdgeIf() 공개 메소드

public RemoveOutEdgeIf ( vertex, EdgePredicate predicate ) : int
predicate EdgePredicate
리턴 int

RemoveVertex() 공개 메소드

public RemoveVertex ( vertex ) : bool
리턴 bool

RemoveVertexIf() 공개 메소드

public RemoveVertexIf ( VertexPredicate predicate ) : int
predicate VertexPredicate
리턴 int

TrimEdgeExcess() 공개 메소드

public TrimEdgeExcess ( ) : void
리턴 void

TryGetEdge() 공개 메소드

public TryGetEdge ( source, target, &edge ) : bool
리턴 bool

TryGetEdges() 공개 메소드

public TryGetEdges ( source, target, IEnumerable &edges ) : bool
edges IEnumerable
리턴 bool

TryGetInEdges() 공개 메소드

public TryGetInEdges ( vertex, IEnumerable &edges ) : bool
edges IEnumerable
리턴 bool

TryGetOutEdges() 공개 메소드

public TryGetOutEdges ( vertex, IEnumerable &edges ) : bool
edges IEnumerable
리턴 bool