SNAP Library 2.0, User Reference  2013-05-13 16:33:57
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
TArtPointVisitor Class Reference

Articulation point Depth-First-Search visitor class. More...

#include <cncom.h>

List of all members.

Public Member Functions

 TArtPointVisitor ()
 TArtPointVisitor (const int &Nodes)
void DiscoverNode (int NId)
void FinishNode (const int &NId)
void ExamineEdge (const int &NId1, const int &NId2)
void TreeEdge (const int &NId1, const int &NId2)
void BackEdge (const int &NId1, const int &NId2)
void FwdEdge (const int &NId1, const int &NId2)

Public Attributes

THash< TInt, TIntPrVnLowH
THash< TInt, TIntParentH
TIntSet ArtSet
TInt Time

Detailed Description

Articulation point Depth-First-Search visitor class.

Definition at line 164 of file cncom.h.


Constructor & Destructor Documentation

Definition at line 171 of file cncom.h.

{ }
TArtPointVisitor::TArtPointVisitor ( const int &  Nodes) [inline]

Definition at line 172 of file cncom.h.

: VnLowH(Nodes), ParentH(Nodes)  { }

Member Function Documentation

void TArtPointVisitor::BackEdge ( const int &  NId1,
const int &  NId2 
) [inline]

Definition at line 181 of file cncom.h.

                                                  {
    if (ParentH.IsKey(NId1) && ParentH.GetDat(NId1)!=NId2) {
      VnLowH.GetDat(NId1).Val2 = TMath::Mn(VnLowH.GetDat(NId1).Val2, VnLowH.GetDat(NId2).Val1); } }
void TArtPointVisitor::DiscoverNode ( int  NId) [inline]

Definition at line 173 of file cncom.h.

{ Time++; VnLowH.AddDat(NId, TIntPr(Time, Time)); }
void TArtPointVisitor::ExamineEdge ( const int &  NId1,
const int &  NId2 
) [inline]

Definition at line 179 of file cncom.h.

{ }
void TArtPointVisitor::FinishNode ( const int &  NId) [inline]

Definition at line 174 of file cncom.h.

                                  {
    if (! ParentH.IsKey(NId)) { return; }  const int Prn = ParentH.GetDat(NId);
    VnLowH.GetDat(Prn).Val2 = TMath::Mn(VnLowH.GetDat(Prn).Val2, VnLowH.GetDat(NId).Val2);
    if (VnLowH.GetDat(Prn).Val1==1 && VnLowH.GetDat(NId).Val1!=2) { ArtSet.AddKey(Prn); }
    if (VnLowH.GetDat(Prn).Val1!=1 && VnLowH.GetDat(NId).Val2>=VnLowH.GetDat(Prn).Val1) { ArtSet.AddKey(Prn); } }
void TArtPointVisitor::FwdEdge ( const int &  NId1,
const int &  NId2 
) [inline]

Definition at line 184 of file cncom.h.

                                                 {
    VnLowH.GetDat(NId1).Val2 = TMath::Mn(VnLowH.GetDat(NId1).Val2, VnLowH.GetDat(NId2).Val1); }
void TArtPointVisitor::TreeEdge ( const int &  NId1,
const int &  NId2 
) [inline]

Definition at line 180 of file cncom.h.

{ ParentH.AddDat(NId2, NId1); }

Member Data Documentation

Definition at line 168 of file cncom.h.

Definition at line 167 of file cncom.h.

Definition at line 169 of file cncom.h.

Definition at line 166 of file cncom.h.


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