Don't like ads? PRO users don't see any ads ;-)
Guest

Parcial 2/6/09 algo1

By: a guest on Jun 1st, 2012  |  syntax: C++  |  size: 0.88 KB  |  hits: 96  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. struct Node
  2. {
  3.         int value;
  4.  
  5.         Node *bro;
  6.  
  7.         Node *son
  8. };
  9.  
  10. Node *_naryTree = new Node();
  11. Node *_list     = new Node();
  12.  
  13.  
  14. void addToList(Node *list, int value)
  15. {
  16.         /* ... */
  17. }
  18.  
  19. void gimmeListFromNaryTree(Node *naryTree, int &level, int k, Node *list)
  20. {
  21.         if (naryTree != NULL)
  22.         {
  23.                 /* Si el pibe no tiene hijos (re virgo) y el nivel actual es mayor al pedido, agregamos el virgo a la lista. */
  24.                 if (naryTree->son == NULL && level >= k)
  25.                         addToList(list, naryTree->value);
  26.  
  27.                 /* recorremos todos los bros del nodo actual creando una instancia nueva. */
  28.                 while (naryTree->bro != NULL)
  29.                 {
  30.                         gimmeListFromNaryTree(naryTree->bro, level, k, list);
  31.                         naryTree = naryTree->bro;
  32.                 }
  33.  
  34.                 /* En cada instancia nueva pasamos al siguiente nivel. */
  35.                 gimmeListFromNaryTree(naryTree->son, level++, k, list);
  36.  
  37.                 /* Cuando sale de la instancia baja en uno en nivel. */
  38.                 level--;
  39.         }
  40. }