Considere el siguiente segmento de programa C
struct CellNode { struct CelINode *leftchild; int element; struct CelINode *rightChild; } int Dosomething(struct CelINode *ptr) { int value = 0; if (ptr != NULL) { if (ptr->leftChild != NULL) value = 1 + DoSomething(ptr->leftChild); if (ptr->rightChild != NULL) value = max(value, 1 + DoSomething(ptr->rightChild)); } return (value); }
El valor devuelto por la función HacerAlgo cuando se pasa como argumento un puntero a la raíz de un árbol no vacío es (GATE CS 2004)
(A) El número de Nodes hoja en el árbol
(B) El número de Nodes en el árbol
(C) El número de Nodes internos en el árbol
(D) La altura del árbol
Respuesta: (D)
Explicación: Explicación: HacerAlgo() devuelve max(altura del hijo izquierdo + 1, altura del hijo derecho + 1). Entonces, dado que el puntero a la raíz del árbol se pasa a DoSomething(), devolverá la altura del árbol. Tenga en cuenta que esta implementación sigue la convención donde la altura de un solo Node es 0.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA