SNAP Library 2.2, User Reference  2014-03-11 19:15:55
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 169 of file cncom.h.


Constructor & Destructor Documentation

Definition at line 176 of file cncom.h.

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

Definition at line 177 of file cncom.h.

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

Member Function Documentation

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

Definition at line 186 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 178 of file cncom.h.

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

Definition at line 184 of file cncom.h.

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

Definition at line 179 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 189 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 185 of file cncom.h.

{ ParentH.AddDat(NId2, NId1); }

Member Data Documentation

Definition at line 173 of file cncom.h.

Definition at line 172 of file cncom.h.

Definition at line 174 of file cncom.h.

Definition at line 171 of file cncom.h.


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