Q. 51 Consider the pseudocode given below. The function DoSomething() takes
as argument a pointer to the root of an arbitrary tree represented by the
leftMostChild-rightSibling representation. Each node of the tree is of
type treeNode.
typedef
struct
treeNode* treeptr;
struct
treeNode
{
treeptr leftMostChild, rightSibling;
};
int
DoSomething (treeptr tree)
{
int
value=0;
if
(tree != NULL)
{
if
(tree->leftMostChild == NULL)
value = 1;
else
value = DoSomething(tree->leftMostChild);
value = value + DoSomething(tree->rightSibling);
}
return
(value);
}
When the pointer to the root of a tree is passed as the argument to DoSomething,
the value returned by the function corresponds to the
(A) number of internal nodes in the tree
(B) height of the tree
(C) number of nodes without a right sibling in the tree
(D) number of leaf nodes in the trees
Answer: (D)
Explanation: