diff --git a/dynamic_programming/tree_height.cpp b/dynamic_programming/tree_height.cpp index fe9b48130..18a02e68e 100644 --- a/dynamic_programming/tree_height.cpp +++ b/dynamic_programming/tree_height.cpp @@ -1,6 +1,6 @@ -/// C++ Program to find height of the tree using bottom - up DP. +// C++ Program to find height of the tree using bottom - up DP. -/** +/* * Given a rooted tree with node 1. * Task is to find the height of the tree. * Example: - @@ -9,15 +9,15 @@ * 1 3 * 2 4 * Height of the tree : - 3 -**/ +*/ #include #include -/// global declarations -/// no of nodes max limit. +// global declarations +// no of nodes max limit. const int MAX = 1e5; -/// adjacency list +// adjacency list std::vector adj[MAX]; std::vector visited; std::vector dp; @@ -29,31 +29,31 @@ void dp_with_dfs(int u) { if (!visited[v]) { dp_with_dfs(v); - /// selected maximum subtree height from all childs. + // selected maximum subtree height from all child. child_height = std::max(child_height, dp[v]+1); } } - /// assigned the max child height to current visited node. + // assigned the max child height to current visited node. dp[u] = child_height; } int main() { - /// number of nodes + // number of nodes int n; std::cin >> n; int u, v; - /// Tree contains exactly n-1 edges where n denotes the nodes. + // Tree contains exactly n-1 edges where n denotes the nodes. for (int i = 0; i < n-1; i++) { std::cin >> u >> v; - /// undirected tree u -> v and v -> u. + // undirected tree u -> v and v -> u. adj[u].push_back(v); adj[v].push_back(u); } - /// initialize all nodes as unvisited. + // initialize all nodes as unvisited. visited.assign(n+1, false); - /// initialize depth of all nodes to 0. + // initialize depth of all nodes to 0. dp.assign(n+1, 0); - /// function call which will initialize the height of all nodes. + // function call which will initialize the height of all nodes. dp_with_dfs(1); std::cout << "Height of the Tree : " << dp[1] << std::endl; }