The question is how to create a binary tree, given its ancestor matrix. I found a cool solution at http://www.ritambhara.in/build-binary-tree-from-ancestor-matrics/. Problem is that it involves deleting rows and columns from the matrix. Now how do I do that? Can anybody suggest a pseudocode for this? Or, is there any better algo possible?
Share
You don’t have to actually delete the rows and columns. You can either flag them as deleted in some additional array, or you can make them all zeros, which I think will be effectively the same (actually, you’ll still need to know that they are removed, so you don’t choose them again in step 4.c – so, flagging the node as deleted should be good enough).
Here are the modifications to the pseudocode from the page:
4.b.
4.c. Look for all rows for which Sum[i] == 0 and used[i] == false.