
Parcial 2/6/09 algo1
By: a guest on
Jun 1st, 2012 | syntax:
C++ | size: 0.88 KB | hits: 96 | expires: Never
struct Node
{
int value;
Node *bro;
Node *son
};
Node *_naryTree = new Node();
Node *_list = new Node();
void addToList(Node *list, int value)
{
/* ... */
}
void gimmeListFromNaryTree(Node *naryTree, int &level, int k, Node *list)
{
if (naryTree != NULL)
{
/* Si el pibe no tiene hijos (re virgo) y el nivel actual es mayor al pedido, agregamos el virgo a la lista. */
if (naryTree->son == NULL && level >= k)
addToList(list, naryTree->value);
/* recorremos todos los bros del nodo actual creando una instancia nueva. */
while (naryTree->bro != NULL)
{
gimmeListFromNaryTree(naryTree->bro, level, k, list);
naryTree = naryTree->bro;
}
/* En cada instancia nueva pasamos al siguiente nivel. */
gimmeListFromNaryTree(naryTree->son, level++, k, list);
/* Cuando sale de la instancia baja en uno en nivel. */
level--;
}
}