Google OR-Tools: util::ReverseArcListGraph< NodeIndexType, ArcIndexType

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>
class util::ReverseArcListGraph< NodeIndexType, ArcIndexType >

Definition at line 853 of file graph.h.

#include <graph.h>

util::BaseGraph< ReverseArcListGraph< int32_t, int32_t >, int32_t, int32_t, true >

Public Types

using OutgoingArcIterator
using OppositeIncomingArcIterator
using OutgoingHeadIterator
using IncomingArcIterator
Public Types inherited from util::BaseGraph< ReverseArcListGraph< int32_t, int32_t >, int32_t, int32_t, true >
typedef int32_t NodeIndex
typedef int32_t ArcIndex

Public Member Functions

 ReverseArcListGraph ()=default
 ReverseArcListGraph (NodeIndexType num_nodes, ArcIndexType arc_capacity)
NodeIndexType Head (ArcIndexType arc) const
NodeIndexType Tail (ArcIndexType arc) const
ArcIndexType OppositeArc (ArcIndexType arc) const
ArcIndexType OutDegree (NodeIndexType node) const
ArcIndexType InDegree (NodeIndexType node) const
BeginEndWrapper< OutgoingArcIteratorOutgoingArcs (NodeIndexType node) const
BeginEndWrapper< OutgoingArcIteratorOutgoingArcsStartingFrom (NodeIndexType node, ArcIndexType from) const
BeginEndWrapper< IncomingArcIteratorIncomingArcs (NodeIndexType node) const
BeginEndWrapper< IncomingArcIteratorIncomingArcsStartingFrom (NodeIndexType node, ArcIndexType from) const
BeginEndWrapper< OutgoingOrOppositeIncomingArcIteratorOutgoingOrOppositeIncomingArcs (NodeIndexType node) const
BeginEndWrapper< OppositeIncomingArcIteratorOppositeIncomingArcs (NodeIndexType node) const
BeginEndWrapper< OppositeIncomingArcIteratorOppositeIncomingArcsStartingFrom (NodeIndexType node, ArcIndexType from) const
BeginEndWrapper< OutgoingOrOppositeIncomingArcIteratorOutgoingOrOppositeIncomingArcsStartingFrom (NodeIndexType node, ArcIndexType from) const
BeginEndWrapper< OutgoingHeadIteratoroperator[] (NodeIndexType node) const
void ReserveNodes (NodeIndexType bound) override
void ReserveArcs (ArcIndexType bound) override
void AddNode (NodeIndexType node)
ArcIndexType AddArc (NodeIndexType tail, NodeIndexType head)
bool IsArcValid (ArcIndexType arc) const
Public Member Functions inherited from util::BaseGraph< ReverseArcListGraph< int32_t, int32_t >, int32_t, int32_t, true >
 BaseGraph ()
BaseGraphoperator= (const BaseGraph &)=default
virtual ~BaseGraph ()=default
int32_t num_nodes () const
int32_t size () const
int32_t num_arcs () const
IntegerRange< NodeIndexAllNodes () const
IntegerRange< ArcIndexAllForwardArcs () const
bool IsNodeValid (int32_t node) const
bool IsArcValid (int32_t arc) const
int32_t node_capacity () const
int32_t arc_capacity () const
virtual void ReserveNodes (int32_t bound)
virtual void ReserveArcs (int32_t bound)
void Reserve (int32_t node_capacity, int32_t arc_capacity)
void FreezeCapacities ()
virtual void Build (std::vector< int32_t > *permutation)
virtual bool IsBuilt () const

Additional Inherited Members

Static Public Attributes inherited from util::BaseGraph< ReverseArcListGraph< int32_t, int32_t >, int32_t, int32_t, true >
static constexpr bool kHasNegativeReverseArcs
static constexpr int32_t kNilNode
static constexpr int32_t kNilArc
Protected Member Functions inherited from util::BaseGraph< ReverseArcListGraph< int32_t, int32_t >, int32_t, int32_t, true >
void ComputeCumulativeSum (internal::Vector< int32_t, int32_t > *v)
void BuildStartAndForwardHead (internal::SVector< int32_t, int32_t > *head, internal::Vector< int32_t, int32_t > *start, std::vector< int32_t > *permutation)
Protected Attributes inherited from util::BaseGraph< ReverseArcListGraph< int32_t, int32_t >, int32_t, int32_t, true >
int32_t num_nodes_
int32_t node_capacity_
int32_t num_arcs_
int32_t arc_capacity_
bool const_capacities_

◆ IncomingArcIterator

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

Initial value:

ArcPropertyIterator< Graph, ArcIterator, typename Graph::ArcIndex, &Graph::OppositeArc > ArcOppositeArcIterator

Definition at line 897 of file graph.h.

◆ OppositeIncomingArcIterator

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

Initial value:

static constexpr ArcIndexType kNilArc

Definition at line 891 of file graph.h.

◆ OutgoingArcIterator

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

Initial value:

ChasingIterator<ArcIndexType, Base::kNilArc, OutgoingArcIteratorTag>

Definition at line 888 of file graph.h.

◆ OutgoingHeadIterator

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

Initial value:

ArcPropertyIterator< Graph, ArcIterator, typename Graph::NodeIndex, &Graph::Head > ArcHeadIterator

Definition at line 895 of file graph.h.

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ ReverseArcListGraph() [2/2]

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

util::ReverseArcListGraph< NodeIndexType, ArcIndexType >::ReverseArcListGraph ( NodeIndexType num_nodes,
ArcIndexType arc_capacity )
inline

◆ AddArc()

template<typename NodeIndexType, typename ArcIndexType>

◆ AddNode()

template<typename NodeIndexType, typename ArcIndexType>

void util::ReverseArcListGraph< NodeIndexType, ArcIndexType >::AddNode ( NodeIndexType node)

◆ Head()

template<typename NodeIndexType, typename ArcIndexType>

NodeIndexType util::ReverseArcListGraph< NodeIndexType, ArcIndexType >::Head ( ArcIndexType arc) const

◆ IncomingArcs()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ IncomingArcsStartingFrom()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ InDegree()

template<typename NodeIndexType, typename ArcIndexType>

ArcIndexType util::ReverseArcListGraph< NodeIndexType, ArcIndexType >::InDegree ( NodeIndexType node) const

◆ IsArcValid()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

bool util::BaseGraph< ReverseArcListGraph< NodeIndexType, ArcIndexType >, NodeIndexType, ArcIndexType, HasNegativeReverseArcs >::IsArcValid ( ArcIndexType arc) const
inline

◆ operator[]()

◆ OppositeArc()

template<typename NodeIndexType, typename ArcIndexType>

ArcIndexType util::ReverseArcListGraph< NodeIndexType, ArcIndexType >::OppositeArc ( ArcIndexType arc) const

◆ OppositeIncomingArcs()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ OppositeIncomingArcsStartingFrom()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ OutDegree()

template<typename NodeIndexType, typename ArcIndexType>

ArcIndexType util::ReverseArcListGraph< NodeIndexType, ArcIndexType >::OutDegree ( NodeIndexType node) const

◆ OutgoingArcs()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ OutgoingArcsStartingFrom()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ OutgoingOrOppositeIncomingArcs()

◆ OutgoingOrOppositeIncomingArcsStartingFrom()

template<typename NodeIndexType = int32_t, typename ArcIndexType = int32_t>

◆ ReserveArcs()

template<typename NodeIndexType, typename ArcIndexType>

◆ ReserveNodes()

template<typename NodeIndexType, typename ArcIndexType>

◆ Tail()

template<typename NodeIndexType, typename ArcIndexType>

NodeIndexType util::ReverseArcListGraph< NodeIndexType, ArcIndexType >::Tail ( ArcIndexType arc) const

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