Ejercicios sobre árboles
01.
Crea una función bool isBST(const BinNode *r) const;
que dado un puntero al nodo raiz de un árbol binario devuelva true
si es un BST, false
de lo contrario.
02.
Igual que el ejercicio anterior pero para un árbol binario implementado usando arreglo, i.e. bool isBST(int r) const;
.
03.
Crea una función int height(const BinNode *r) const;
que dado un puntero al nodo raiz de un árbol binario devuelva su altura. Trátalo con estos casos:
10 |
10 / 4 / 6 |
10 / \ 4 1 / / \ 6 5 7 \ 3 |
04.
Estudia la función recursiva isBal
en https://repl.it/@rafaelarceupr/BinaryTreeIsBalanced01 y corre a mano un ejemplo como este:
10
/ \
4 1
/ /
6 5
\
3
05.
Crea una función bool leafQty(const BinNode *r) const;
que dado un puntero al nodo raiz de un árbol binario devuelva la cantidad de hojas que tienen el árbol.
06.
Igual que el ejercicio anterior pero para un árbol binario implementado usando arreglo, i.e. int leafQty(int r) const;
.
07.
Crea una función int sumOfAll(const BinNode *r) const;
que dado un puntero al nodo raiz de un árbol binario devuelva la sumatoria de los valores de todas los nodos. Por ejemplo, sumOfAll
devolvería 25
para el siguiente árbol.
8
/ \
5 10
/
2
08.
Crea una función int pairCtr(const BinNode *r) const;
que dado un puntero al nodo raiz de un árbol binario devuelva la cantidad de valores pares en el arbol. Por ejemplo, pairCtr
devolvería 3
para el siguiente árbol.
8
/ \
5 10
/
2