SNAP Library 2.4, User Reference  2015-05-11 19:40:56
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TUNGraph::TEdgeI Class Reference

Edge iterator. Only forward iteration (operator++) is supported. More...

#include <graph.h>

Public Member Functions

 TEdgeI ()
 
 TEdgeI (const TNodeI &NodeI, const TNodeI &EndNodeI, const int &EdgeN=0)
 
 TEdgeI (const TEdgeI &EdgeI)
 
TEdgeIoperator= (const TEdgeI &EdgeI)
 
TEdgeIoperator++ (int)
 Increment iterator. More...
 
bool operator< (const TEdgeI &EdgeI) const
 
bool operator== (const TEdgeI &EdgeI) const
 
int GetId () const
 Returns edge ID. Always returns -1 since only edges in multigraphs have explicit IDs. More...
 
int GetSrcNId () const
 Returns the source of the edge. Since the graph is undirected, this is the node with a smaller ID of the edge endpoints. More...
 
int GetDstNId () const
 Returns the destination of the edge. Since the graph is undirected, this is the node with a greater ID of the edge endpoints. More...
 

Private Attributes

TNodeI CurNode
 
TNodeI EndNode
 
int CurEdge
 

Friends

class TUNGraph
 

Detailed Description

Edge iterator. Only forward iteration (operator++) is supported.

Definition at line 114 of file graph.h.

Constructor & Destructor Documentation

TUNGraph::TEdgeI::TEdgeI ( )
inline

Definition at line 119 of file graph.h.

119 : CurNode(), EndNode(), CurEdge(0) { }
TNodeI EndNode
Definition: graph.h:116
TNodeI CurNode
Definition: graph.h:116
TUNGraph::TEdgeI::TEdgeI ( const TNodeI NodeI,
const TNodeI EndNodeI,
const int &  EdgeN = 0 
)
inline

Definition at line 120 of file graph.h.

120 : CurNode(NodeI), EndNode(EndNodeI), CurEdge(EdgeN) { }
TNodeI EndNode
Definition: graph.h:116
TNodeI CurNode
Definition: graph.h:116
TUNGraph::TEdgeI::TEdgeI ( const TEdgeI EdgeI)
inline

Definition at line 121 of file graph.h.

121 : CurNode(EdgeI.CurNode), EndNode(EdgeI.EndNode), CurEdge(EdgeI.CurEdge) { }
TNodeI EndNode
Definition: graph.h:116
TNodeI CurNode
Definition: graph.h:116

Member Function Documentation

int TUNGraph::TEdgeI::GetDstNId ( ) const
inline

Returns the destination of the edge. Since the graph is undirected, this is the node with a greater ID of the edge endpoints.

Definition at line 132 of file graph.h.

132 { return CurNode.GetOutNId(CurEdge); }
TNodeI CurNode
Definition: graph.h:116
int GetOutNId(const int &NodeN) const
Returns ID of NodeN-th out-node (the node the current node points to).
Definition: graph.h:99
int TUNGraph::TEdgeI::GetId ( ) const
inline

Returns edge ID. Always returns -1 since only edges in multigraphs have explicit IDs.

Definition at line 128 of file graph.h.

128 { return -1; }
int TUNGraph::TEdgeI::GetSrcNId ( ) const
inline

Returns the source of the edge. Since the graph is undirected, this is the node with a smaller ID of the edge endpoints.

Definition at line 130 of file graph.h.

130 { return CurNode.GetId(); }
TNodeI CurNode
Definition: graph.h:116
int GetId() const
Returns ID of the current node.
Definition: graph.h:83
TEdgeI& TUNGraph::TEdgeI::operator++ ( int  )
inline

Increment iterator.

Definition at line 124 of file graph.h.

124 { do { CurEdge++; if (CurEdge >= CurNode.GetOutDeg()) { CurEdge=0; CurNode++; while (CurNode < EndNode && CurNode.GetOutDeg()==0) { CurNode++; } } } while (CurNode < EndNode && GetSrcNId()>GetDstNId()); return *this; }
int GetDstNId() const
Returns the destination of the edge. Since the graph is undirected, this is the node with a greater I...
Definition: graph.h:132
int GetSrcNId() const
Returns the source of the edge. Since the graph is undirected, this is the node with a smaller ID of ...
Definition: graph.h:130
TNodeI EndNode
Definition: graph.h:116
int GetOutDeg() const
Returns out-degree of the current node (returns same as value GetDeg() since the graph is undirected)...
Definition: graph.h:89
TNodeI CurNode
Definition: graph.h:116
bool TUNGraph::TEdgeI::operator< ( const TEdgeI EdgeI) const
inline

Definition at line 125 of file graph.h.

125 { return CurNode<EdgeI.CurNode || (CurNode==EdgeI.CurNode && CurEdge<EdgeI.CurEdge); }
TNodeI CurNode
Definition: graph.h:116
TEdgeI& TUNGraph::TEdgeI::operator= ( const TEdgeI EdgeI)
inline

Definition at line 122 of file graph.h.

122 { if (this!=&EdgeI) { CurNode=EdgeI.CurNode; EndNode=EdgeI.EndNode; CurEdge=EdgeI.CurEdge; } return *this; }
TNodeI EndNode
Definition: graph.h:116
TNodeI CurNode
Definition: graph.h:116
bool TUNGraph::TEdgeI::operator== ( const TEdgeI EdgeI) const
inline

Definition at line 126 of file graph.h.

126 { return CurNode == EdgeI.CurNode && CurEdge == EdgeI.CurEdge; }
TNodeI CurNode
Definition: graph.h:116

Friends And Related Function Documentation

friend class TUNGraph
friend

Definition at line 133 of file graph.h.

Member Data Documentation

int TUNGraph::TEdgeI::CurEdge
private

Definition at line 117 of file graph.h.

TNodeI TUNGraph::TEdgeI::CurNode
private

Definition at line 116 of file graph.h.

TNodeI TUNGraph::TEdgeI::EndNode
private

Definition at line 116 of file graph.h.


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