Algorithm for computing the depths of all the nodes of tree

Click For Summary
An algorithm is proposed to compute the depths of all nodes in a tree, but it currently focuses on finding the height of a single node rather than all nodes. The complexity of the proposed algorithm is questioned, with concerns about its efficiency if it requires running the algorithm for each node individually. The discussion highlights the need for a more efficient approach, ideally achieving a better complexity than what is currently suggested. There is also confusion regarding whether the tree is binary and the correct direction for calculating node depths, suggesting a need for clarification on the algorithm's structure. Overall, the conversation emphasizes the importance of designing an optimal algorithm that accurately computes the depths of all nodes in a tree.
s3a
Messages
828
Reaction score
8

Homework Statement


Give an algorithm for computing the depths of all the nodes of a tree T, where n is the number of nodes of T.

a) What is the complexity of your algorithm in terms of Big-O?

b) What is the best possible complexity that you believe can be achieved when solving such
problem? Explain why.

c) If your algorithm does not achieve this best complexity, can you design a better algorithm to
achieve such complexity? If so, give this algorithm as a second solution.

Homework Equations


The height of a node is the number of edges connecting it to the root node.

The Attempt at a Solution


I'm currently at the part before part a.

Is the following a complete (and 100% correct) algorithm, or is something missing?:

Code:
Algorithm nodeHeight(T,N,H)
Input: A binary tree T and a node N and height H of the given node
Output: The height of the given node in the given binary tree

   if root node and node N are the same thing
       return H

   if there is a left node of N   
       nodeHeight(T,left node of N,H+1)

   if there is a right node of N
       nodeHeight(T,right node of N,H+1)

   return 0

It feels "light" to me. Would this be accepted as a solution on an exam?

Any input in helping me fully understand how to answer this question would be GREATLY appreciated!

P.S.
Am I supposed to assume that the tree is a binary tree?
 
Physics news on Phys.org
I'm afraid there are a couple of things I do not understand about your algorithm.
First, the task is to find the depth of all nodes, not just one. If your idea is to then run this algorithm for each node in the tree tvat seems very inefficient.
Secondly, it seems to be running the wrong way. If you want the depth of a node, don't you need to work towards the root, and that would involve running the parent line, not the two child lines, no?
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
Replies
1
Views
2K
Replies
1
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
1K