OR-Tools  8.2
EbertGraph< NodeIndexType, ArcIndexType >

Detailed Description

template<typename NodeIndexType, typename ArcIndexType>
class operations_research::EbertGraph< NodeIndexType, ArcIndexType >

Definition at line 1186 of file ebert_graph.h.

Classes

class  IncomingArcIterator
 
class  OutgoingOrOppositeIncomingArcIterator
 

Public Types

typedef NodeIndexType NodeIndex
 
typedef ArcIndexType ArcIndex
 

Public Member Functions

 EbertGraph ()
 
 EbertGraph (NodeIndexType max_num_nodes, ArcIndexType max_num_arcs)
 
 ~EbertGraph ()
 
bool CheckArcBounds (const ArcIndexType arc) const
 
bool CheckArcValidity (const ArcIndexType arc) const
 
NodeIndexType Tail (const ArcIndexType arc) const
 
NodeIndexType DirectArcTail (const ArcIndexType arc) const
 
NodeIndexType DirectArcHead (const ArcIndexType arc) const
 
ArcIndexType DirectArc (const ArcIndexType arc) const
 
ArcIndexType ReverseArc (const ArcIndexType arc) const
 
ArcIndexType Opposite (const ArcIndexType arc) const
 
bool IsDirect (const ArcIndexType arc) const
 
bool IsReverse (const ArcIndexType arc) const
 
bool IsOutgoingOrOppositeIncoming (ArcIndexType arc, NodeIndexType node) const
 
bool IsIncoming (ArcIndexType arc, NodeIndexType node) const
 
bool IsOutgoing (ArcIndexType arc, NodeIndexType node) const
 
void BuildRepresentation ()
 
std::string DebugString () const
 
bool Reserve (NodeIndexType new_max_num_nodes, ArcIndexType new_max_num_arcs)
 
ArcIndexType AddArc (NodeIndexType tail, NodeIndexType head)
 
void GroupForwardArcsByFunctor (const ArcIndexTypeStrictWeakOrderingFunctor &compare, PermutationCycleHandler< ArcIndexType > *annotation_handler)
 
ArcIndexType end_arc_index () const
 
bool IsNodeValid (NodeIndexType node) const
 
NodeIndexType num_nodes () const
 
ArcIndexType num_arcs () const
 
NodeIndexType end_node_index () const
 
NodeIndexType max_num_nodes () const
 
ArcIndexType max_num_arcs () const
 
NodeIndexType max_end_node_index () const
 
ArcIndexType max_end_arc_index () const
 
ArcIndexType LookUpArc (const NodeIndexType tail, const NodeIndexType head) const
 
NodeIndexType Head (const ArcIndexType arc) const
 
std::string NodeDebugString (const NodeIndexType node) const
 
std::string ArcDebugString (const ArcIndexType arc) const
 

Static Public Attributes

static const ArcIndexType kFirstArc
 
static const NodeIndexType kFirstNode
 
static const ArcIndexType kMaxNumArcs
 
static const NodeIndexType kMaxNumNodes
 
static const ArcIndexType kNilArc
 
static const NodeIndexType kNilNode
 

Protected Member Functions

void Initialize (NodeIndexType max_num_nodes, ArcIndexType max_num_arcs)
 
ArcIndexType FirstOutgoingOrOppositeIncomingArc (const NodeIndexType node) const
 
ArcIndexType NextAdjacentArc (const ArcIndexType arc) const
 
ArcIndexType NextOutgoingArc (const NodeIndexType unused_node, const ArcIndexType arc) const
 
NodeIndexType StartNode (NodeIndexType node) const
 
ArcIndexType StartArc (ArcIndexType arc) const
 
NodeIndexType NextNode (const NodeIndexType node) const
 
ArcIndexType NextArc (const ArcIndexType arc) const
 
ArcIndexType FirstOutgoingArc (const NodeIndexType node) const
 

Protected Attributes

ZVector< ArcIndexType > next_adjacent_arc_
 
bool representation_clean_
 
ZVector< ArcIndexType > first_incident_arc_
 
ZVector< NodeIndexType > head_
 
ArcIndexType max_num_arcs_
 
NodeIndexType max_num_nodes_
 
ArcIndexType num_arcs_
 
NodeIndexType num_nodes_
 

Member Typedef Documentation

◆ ArcIndex

typedef ArcIndexType ArcIndex

Definition at line 1224 of file ebert_graph.h.

◆ NodeIndex

typedef NodeIndexType NodeIndex

Definition at line 1223 of file ebert_graph.h.

Constructor & Destructor Documentation

◆ EbertGraph() [1/2]

EbertGraph ( )
inline

Definition at line 1226 of file ebert_graph.h.

◆ EbertGraph() [2/2]

EbertGraph ( NodeIndexType  max_num_nodes,
ArcIndexType  max_num_arcs 
)
inline

Definition at line 1228 of file ebert_graph.h.

◆ ~EbertGraph()

~EbertGraph ( )
inline

Definition at line 1232 of file ebert_graph.h.

Member Function Documentation

◆ AddArc()

ArcIndexType AddArc ( NodeIndexType  tail,
NodeIndexType  head 
)
inlineinherited

Definition at line 1001 of file ebert_graph.h.

◆ ArcDebugString()

std::string ArcDebugString ( const ArcIndexType  arc) const
inlineinherited

Definition at line 310 of file ebert_graph.h.

◆ BuildRepresentation()

void BuildRepresentation ( )
inline

Definition at line 1448 of file ebert_graph.h.

◆ CheckArcBounds()

bool CheckArcBounds ( const ArcIndexType  arc) const
inline

Definition at line 1363 of file ebert_graph.h.

◆ CheckArcValidity()

bool CheckArcValidity ( const ArcIndexType  arc) const
inline

Definition at line 1371 of file ebert_graph.h.

◆ DebugString()

std::string DebugString ( ) const
inline

Definition at line 1458 of file ebert_graph.h.

◆ DirectArc()

ArcIndexType DirectArc ( const ArcIndexType  arc) const
inline

Definition at line 1396 of file ebert_graph.h.

◆ DirectArcHead()

NodeIndexType DirectArcHead ( const ArcIndexType  arc) const
inline

Definition at line 1391 of file ebert_graph.h.

◆ DirectArcTail()

NodeIndexType DirectArcTail ( const ArcIndexType  arc) const
inline

Definition at line 1384 of file ebert_graph.h.

◆ end_arc_index()

ArcIndexType end_arc_index ( ) const
inlineinherited

Definition at line 963 of file ebert_graph.h.

◆ end_node_index()

NodeIndexType end_node_index ( ) const
inlineinherited

Definition at line 247 of file ebert_graph.h.

◆ FirstOutgoingArc()

ArcIndexType FirstOutgoingArc ( const NodeIndexType  node) const
inlineprotectedinherited

Definition at line 479 of file ebert_graph.h.

◆ FirstOutgoingOrOppositeIncomingArc()

ArcIndexType FirstOutgoingOrOppositeIncomingArc ( const NodeIndexType  node) const
inlineprotectedinherited

Definition at line 1123 of file ebert_graph.h.

◆ GroupForwardArcsByFunctor()

void GroupForwardArcsByFunctor ( const ArcIndexTypeStrictWeakOrderingFunctor &  compare,
PermutationCycleHandler< ArcIndexType > *  annotation_handler 
)
inlineinherited

Definition at line 1022 of file ebert_graph.h.

◆ Head()

NodeIndexType Head ( const ArcIndexType  arc) const
inlineinherited

Definition at line 297 of file ebert_graph.h.

◆ Initialize()

void Initialize ( NodeIndexType  max_num_nodes,
ArcIndexType  max_num_arcs 
)
inlineprotectedinherited

Definition at line 1112 of file ebert_graph.h.

◆ IsDirect()

bool IsDirect ( const ArcIndexType  arc) const
inline

Definition at line 1417 of file ebert_graph.h.

◆ IsIncoming()

bool IsIncoming ( ArcIndexType  arc,
NodeIndexType  node 
) const
inline

Definition at line 1435 of file ebert_graph.h.

◆ IsNodeValid()

bool IsNodeValid ( NodeIndexType  node) const
inlineinherited

Definition at line 964 of file ebert_graph.h.

◆ IsOutgoing()

bool IsOutgoing ( ArcIndexType  arc,
NodeIndexType  node 
) const
inline

Definition at line 1440 of file ebert_graph.h.

◆ IsOutgoingOrOppositeIncoming()

bool IsOutgoingOrOppositeIncoming ( ArcIndexType  arc,
NodeIndexType  node 
) const
inline

Definition at line 1429 of file ebert_graph.h.

◆ IsReverse()

bool IsReverse ( const ArcIndexType  arc) const
inline

Definition at line 1423 of file ebert_graph.h.

◆ LookUpArc()

ArcIndexType LookUpArc ( const NodeIndexType  tail,
const NodeIndexType  head 
) const
inlineinherited

Definition at line 285 of file ebert_graph.h.

◆ max_end_arc_index()

ArcIndexType max_end_arc_index ( ) const
inlineinherited

Definition at line 271 of file ebert_graph.h.

◆ max_end_node_index()

NodeIndexType max_end_node_index ( ) const
inlineinherited

Definition at line 264 of file ebert_graph.h.

◆ max_num_arcs()

ArcIndexType max_num_arcs ( ) const
inlineinherited

Definition at line 259 of file ebert_graph.h.

◆ max_num_nodes()

NodeIndexType max_num_nodes ( ) const
inlineinherited

Definition at line 255 of file ebert_graph.h.

◆ NextAdjacentArc()

ArcIndexType NextAdjacentArc ( const ArcIndexType  arc) const
inlineprotectedinherited

Definition at line 1131 of file ebert_graph.h.

◆ NextArc()

ArcIndexType NextArc ( const ArcIndexType  arc) const
inlineprotectedinherited

Definition at line 472 of file ebert_graph.h.

◆ NextNode()

NodeIndexType NextNode ( const NodeIndexType  node) const
inlineprotectedinherited

Definition at line 458 of file ebert_graph.h.

◆ NextOutgoingArc()

ArcIndexType NextOutgoingArc ( const NodeIndexType  unused_node,
const ArcIndexType  arc 
) const
inlineprotectedinherited

Definition at line 1138 of file ebert_graph.h.

◆ NodeDebugString()

std::string NodeDebugString ( const NodeIndexType  node) const
inlineinherited

Definition at line 302 of file ebert_graph.h.

◆ num_arcs()

ArcIndexType num_arcs ( ) const
inlineinherited

Definition at line 241 of file ebert_graph.h.

◆ num_nodes()

NodeIndexType num_nodes ( ) const
inlineinherited

Definition at line 237 of file ebert_graph.h.

◆ Opposite()

ArcIndexType Opposite ( const ArcIndexType  arc) const
inline

Definition at line 1409 of file ebert_graph.h.

◆ Reserve()

bool Reserve ( NodeIndexType  new_max_num_nodes,
ArcIndexType  new_max_num_arcs 
)
inlineinherited

Definition at line 978 of file ebert_graph.h.

◆ ReverseArc()

ArcIndexType ReverseArc ( const ArcIndexType  arc) const
inline

Definition at line 1402 of file ebert_graph.h.

◆ StartArc()

ArcIndexType StartArc ( ArcIndexType  arc) const
inlineprotectedinherited

Definition at line 445 of file ebert_graph.h.

◆ StartNode()

NodeIndexType StartNode ( NodeIndexType  node) const
inlineprotectedinherited

Definition at line 439 of file ebert_graph.h.

◆ Tail()

NodeIndexType Tail ( const ArcIndexType  arc) const
inline

Definition at line 1376 of file ebert_graph.h.

Member Data Documentation

◆ first_incident_arc_

ZVector<ArcIndexType> first_incident_arc_
protectedinherited

Definition at line 954 of file ebert_graph.h.

◆ head_

ZVector<NodeIndexType> head_
protectedinherited

Definition at line 955 of file ebert_graph.h.

◆ kFirstArc

const ArcIndexType kFirstArc
staticinherited

Definition at line 966 of file ebert_graph.h.

◆ kFirstNode

const NodeIndexType kFirstNode
staticinherited

Definition at line 967 of file ebert_graph.h.

◆ kMaxNumArcs

const ArcIndexType kMaxNumArcs
staticinherited

Definition at line 968 of file ebert_graph.h.

◆ kMaxNumNodes

const NodeIndexType kMaxNumNodes
staticinherited

Definition at line 969 of file ebert_graph.h.

◆ kNilArc

const ArcIndexType kNilArc
staticinherited

Definition at line 970 of file ebert_graph.h.

◆ kNilNode

const NodeIndexType kNilNode
staticinherited

Definition at line 971 of file ebert_graph.h.

◆ max_num_arcs_

ArcIndexType max_num_arcs_
protectedinherited

Definition at line 956 of file ebert_graph.h.

◆ max_num_nodes_

NodeIndexType max_num_nodes_
protectedinherited

Definition at line 957 of file ebert_graph.h.

◆ next_adjacent_arc_

ZVector<ArcIndexType> next_adjacent_arc_
protectedinherited

Definition at line 1147 of file ebert_graph.h.

◆ num_arcs_

ArcIndexType num_arcs_
protectedinherited

Definition at line 958 of file ebert_graph.h.

◆ num_nodes_

NodeIndexType num_nodes_
protectedinherited

Definition at line 959 of file ebert_graph.h.

◆ representation_clean_

bool representation_clean_
protectedinherited

Definition at line 1152 of file ebert_graph.h.


The documentation for this class was generated from the following file: