TheAlgorithms/C++ 1.0.0
All the algorithms implemented in C++
|
Public Member Functions | |
RootedTree (const std::vector< std::pair< int, int > > &undirected_edges, int root_) | |
Constructs the tree by calculating parent for every vertex. Assumes a valid description of a tree is provided. | |
Public Member Functions inherited from graph::Graph< T > | |
void | add_edge (T u, T v, bool bidir=true) |
std::map< T, bool > | breadth_first_search (T src) |
Graph (size_t N, const std::vector< std::pair< int, int > > &undirected_edges) | |
Populate the adjacency list for each vertex in the graph. Assumes that evey edge is a pair of valid vertex indices. | |
int | number_of_vertices () const |
Public Attributes | |
std::vector< int > | parent |
Stores parent of every vertex and for root its own index. The root is technically not its own parent, but it's very practical for the lowest common ancestor algorithm. | |
std::vector< int > | level |
Stores the distance from the root. | |
int | root |
Index of the root vertex. | |
Public Attributes inherited from graph::Graph< T > | |
std::vector< std::vector< int > > | neighbors |
for each vertex it stores a list indicies of its neighbors | |
Protected Member Functions | |
void | populate_parents () |
Calculate the parents for all the vertices in the tree. Implements the breadth first search algorithm starting from the root vertex searching the entire tree and labeling parents for all vertices. | |
Representation of a rooted tree. For every vertex its parent is precalculated.
Definition at line 84 of file lowest_common_ancestor.cpp.
|
inline |
Constructs the tree by calculating parent for every vertex. Assumes a valid description of a tree is provided.
undirected_edges | list of graph's undirected edges |
root_ | index of the root vertex |
Definition at line 93 of file lowest_common_ancestor.cpp.
|
inlineprotected |
Calculate the parents for all the vertices in the tree. Implements the breadth first search algorithm starting from the root vertex searching the entire tree and labeling parents for all vertices.
Definition at line 117 of file lowest_common_ancestor.cpp.
std::vector<int> graph::RootedTree::level |
Stores the distance from the root.
Definition at line 106 of file lowest_common_ancestor.cpp.
std::vector<int> graph::RootedTree::parent |
Stores parent of every vertex and for root its own index. The root is technically not its own parent, but it's very practical for the lowest common ancestor algorithm.
Definition at line 104 of file lowest_common_ancestor.cpp.
int graph::RootedTree::root |
Index of the root vertex.
Definition at line 108 of file lowest_common_ancestor.cpp.