Ver Mensaje Individual
  #7 (permalink)  
Antiguo 22/07/2013, 21:08
ambigus
 
Fecha de Ingreso: septiembre-2008
Mensajes: 221
Antigüedad: 15 años, 7 meses
Puntos: 1
Sonrisa Respuesta: Guia_Listas_Enlazadas - C++

Gracias por tu ayuda. Después de varias horas de arduo análisis quiero compartir mis avances contigo :D

Código C++:
Ver original
  1. // Introduce 10
  2. +       inicial 0x00000000                  nodo*
  3. +       nuevo   0x00400AC8 //x4 { dato=10 sig=0x00000000 }  nodo*
  4.         nuevo->dato           10 int
  5. // Ingresa a if(inicial==NULL)
  6. +       inicial 0x00400AC8 //x4 { dato=10 sig=0x00000000 }  nodo*
  7. +       nuevo   0x00400AC8 //x4 { dato=10 sig=0x00000000 }  nodo*
  8. +       nuevo->sig  0x00000000  nodo*
  9. // Sale
  10.  
  11. //Introduce 20
  12.         anterior            <valor no definido> nodo*
  13. +       nuevo   0x004664C8 //x9 { dato=20 sig=0x00000000 }  nodo*
  14.         nuevo->dato            20 int
  15.  
  16. // Ingreso a: "anterior=buscarLista(nuevo->dato);"
  17.  
  18. // anterior==NULL; // anterior auxiliar
  19.  
  20.         anterior            <valor no definido> nodo*
  21.         clave                       20  int
  22. +       inicial 0x00400AC8 //x4{ dato=10 sig=0x00000000 }   nodo*
  23.         inicial->dato   10  int
  24.  
  25. // anterior=inicial;
  26.  
  27. +       anterior 0x00400AC8 //x4{ dato=10 sig=0x00000000 }  nodo*
  28. +       anterior->sig   0x00000000  nodo*
  29.         clave                       20  int
  30. +       inicial  0x00400AC8 //x4{ dato=10 sig=0x00000000 }  nodo*
  31.  
  32. // return anterior;
  33.  
  34. +       anterior 0x00400AC8 //x4{ dato=10 sig=0x00000000 }  nodo*
  35. +       anterior->sig               0x00000000  nodo*
  36.  
  37. // nuevo->sig=NULL; //Agrega un nodo que queda de ultimo
  38.  
  39. +       nuevo   0x004664C8 //x9{ dato=20 sig=0x00000000 }   nodo*
  40. +       nuevo->sig  0x00000000  nodo*
  41.  
  42. //Introduce 30
  43. +       anterior    0x00400AC8 //x4  { dato=10 sig=0x004664C8} nodo*
  44. +       nuevo       0x003F50D0 //x12 { dato=30 sig=0x00000000} nodo*
  45.         nuevo->dato 30  int
  46.  
  47.  
  48. // Buscarlista
  49. +       anterior    0x00400AC8 //x4 { dato=10 sig=0x004664C8 }  nodo*
  50. +       anterior->sig   0x004664C8 //x9 { dato=20 sig=0x00000000 }  nodo*
  51.         anterior->sig->dato 20  int
  52.         clave           30  int
  53. +       inicial     0x00400AC8 //x4 { dato=10 sig=0x004664C8 }  nodo*
  54.  
  55. // Entra 1ra ves While;
  56.  
  57. +       anterior    0x004664C8 //x9 { dato=20 sig=0x00000000 }  nodo*
  58. +       anterior->sig   0x00000000  nodo*
  59.         clave   30  int
  60. +       inicial 0x00400AC8 //x4{ dato=10 sig=0x004664C8 }       nodo*
  61.  
  62.  
  63. // Retorna "anterior;
  64.  
  65. +       anterior    0x004664C8 //x9 { dato=20 sig=0x00000000 }  nodo*
  66. +       anterior->sig   0x00000000  nodo*
  67.  
  68. // anterior=buscarLista(nuevo->dato);
  69.  
  70. +       anterior    0x00400AC8 //x9 { dato=10 sig=0x004664C8 }  nodo*
  71. +       nuevo       0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  72.         nuevo->dato 30  int
  73.  
  74. // if(anterior->sig!=NULL)
  75.  
  76. +       anterior    0x004664C8 //x9 { dato=20 sig=0x00000000 }  nodo*
  77. +       anterior->sig   0x00000000  nodo*
  78.  
  79. //Agrega un nodo que queda de ultimo
  80. // nuevo->sig=NULL;
  81.  
  82. +       nuevo       0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  83. +       nuevo->sig  0x00000000                  nodo*
  84.  
  85. // anterior->sig=nuevo;
  86. +       anterior    0x004664C8 //x9 { dato=20 sig=0x00000000 }  nodo*
  87. +       anterior->sig   0x00000000                  nodo*
  88. +       nuevo       0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  89. +       nuevo->sig  0x00000000                  nodo*
  90.  
  91.  
  92. // Introduce 5
  93.  
  94. +       inicial     0x00400AC8 //x4 { dato=10 sig=0x004664C8 }  nodo*
  95. +       nuevo       0x004663D8 //x24{ dato=5 sig=0x00000000 }   nodo*
  96.         nuevo->dato 5   int
  97. // funcion buscar();
  98.  
  99.         anterior    <valor no definido> nodo*
  100.         clave   5   int
  101. +       inicial     0x00400AC8 //x4 { dato=10 sig=0x004664C8 }  nodo*
  102.         inicial->dato   10  int
  103.  
  104. // return "anterior";
  105.  
  106. +       anterior    0x004664C8 //x9  { dato=20 sig=0x003F50D0 } nodo*
  107. +       nuevo       0x004663D8 //x24 { dato=5 sig=0x00000000 }  nodo*
  108.         nuevo->dato 5   int
  109.  
  110. // if( anterior==NULL)
  111. //nuevo->sig=inicial;
  112.  
  113.  
  114. +       inicial     0x00400AC8 //x4 { dato=10 sig=0x004664C8 }  nodo*
  115. +       nuevo       0x004663D8 //x24{ dato=5 sig=0x00000000 }   nodo*
  116. +       nuevo->sig  0x00000000  nodo*
  117.  
  118.  
  119. // inicial=nuevo;
  120.  
  121. +       inicial     0x004663D8 //x24 { dato=5 sig=0x00400AC8 }  nodo*
  122. +       nuevo       0x004663D8 //x24 { dato=5 sig=0x00400AC8 }  nodo*
  123. +       nuevo->sig  0x00400AC8 //x4  { dato=10 sig=0x004664C8 } nodo*
  124.  
  125. // Funcion buscarlista();
  126.  
  127.         anterior    <valor no definido> nodo*
  128. +       nuevo   0x00466420 { dato=25 sig=0x00000000 }   nodo*
  129.         nuevo->dato 25  int
  130.  
  131. // Ingreso al while de buscarlista();
  132.  
  133. +       anterior    0x004663D8 //x24 { dato=5 sig=0x00400AC8 }  nodo*
  134. +       anterior->sig   0x00400AC8 //x4  { dato=10 sig=0x004664C8 } nodo*
  135.         anterior->sig->dato 10  int
  136.         clave           25  int
  137. +       inicial     0x004663D8 //x24 { dato=5 sig=0x00400AC8 }  nodo*
  138.  
  139.  
  140. // Segundo acceso a while;
  141. +       anterior    0x00400AC8 //x4 { dato=10 sig=0x004664C8 }  nodo*
  142. +       anterior->sig   0x004664C8 //x9 { dato=20 sig=0x003F50D0 }  nodo*
  143.         anterior->sig->dato 20  int
  144.         clave           25  int
  145. +       inicial     0x004663D8 //x24{ dato=5 sig=0x00400AC8 }   nodo*
  146.  
  147.  
  148.  
  149. // Tercer acceso a while;
  150. +       anterior    0x004664C8 //x9 { dato=20 sig=0x003F50D0 }  nodo*
  151. +       anterior->sig   0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  152.         anterior->sig->dato 30  int
  153.         clave   25  int
  154. +       inicial     0x004663D8 //x24{ dato=5 sig=0x00400AC8 }   nodo*
  155.  
  156.  
  157.  
  158. // Finalización del while;
  159. +       anterior    0x004664C8 //x9 { dato=20 sig=0x003F50D0 }  nodo*
  160. +       nuevo       0x00466420 //x36{ dato=25 sig=0x00000000 }  nodo*
  161.  
  162. //if(anterior->sig!=NULL)
  163. +       anterior    0x004664C8 //x9 { dato=20 sig=0x003F50D0 }  nodo*
  164. +       anterior->sig   0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  165.  
  166. // nuevo->sig=anterior->sig;
  167.  
  168. +       anterior    0x004664C8 //x9  { dato=20 sig=0x003F50D0 } nodo*
  169. +       anterior->sig   0x003F50D0 //x12 { dato=30 sig=0x00000000 } nodo*
  170. +       nuevo       0x00466420 //x36 { dato=25 sig=0x00000000 } nodo*
  171. +       nuevo->sig  0x00000000  nodo*
  172.  
  173. //anterior->sig=nuevo;
  174. +       anterior    0x004664C8 //x9 { dato=20 sig=0x003F50D0 }  nodo*
  175. +       anterior->sig   0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  176. +       nuevo       0x00466420 //x36{ dato=25 sig=0x003F50D0 }  nodo*
  177. +       nuevo->sig  0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  178.  
  179. //
  180.  
  181. +       anterior    0x004664C8 //x9 { dato=20 sig=0x00466420 }  nodo*
  182. +       anterior->sig   0x00466420 //x36{ dato=25 sig=0x003F50D0 }  nodo*
  183. +       nuevo       0x00466420 //x36{ dato=25 sig=0x003F50D0 }  nodo*
  184. +       nuevo->sig  0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  185.  
  186. // Introducido 35
  187.  
  188. +       inicial 0x004663D8  //x24 { dato=5 sig=0x00400AC8 } nodo*
  189. +       nuevo   0x00466468  //x42 { dato=35 sig=0x00000000 }    nodo*
  190.         nuevo->dato 35  int
  191.  
  192. // anterior=buscarLista(nuevo->dato);
  193.  
  194. +       anterior    0x004664C8 //x9 { dato=20 sig=0x00466420 }  nodo*
  195. +       nuevo       0x00466468 //x42{ dato=35 sig=0x00000000 }  nodo*
  196.         nuevo->dato 35  int
  197.  
  198.  
  199. // Primer while - listabuscar();
  200.  
  201. +       anterior    0x004663D8 //x24 { dato=5 sig=0x00400AC8 }  nodo*
  202. +       anterior->sig   0x00400AC8 //x4  { dato=10 sig=0x004664C8 } nodo*
  203.         anterior->sig->dato 10  int
  204.         clave   35  int
  205. +       inicial     0x004663D8 //x24 { dato=5 sig=0x00400AC8 }  nodo*
  206.  
  207. // Segundo while - listabuscar();
  208. +       anterior    0x00400AC8 //x4{ dato=10 sig=0x004664C8 }   nodo*
  209. +       anterior->sig   0x004664C8 //x9{ dato=20 sig=0x00466420 }   nodo*
  210.         anterior->sig->dato 20  int
  211.         clave   35  int
  212. +       inicial     0x004663D8 //x24 { dato=5 sig=0x00400AC8 }  nodo*
  213.  
  214. // Tercer while - listabuscar();
  215. +       anterior    0x004664C8 //x9 { dato=20 sig=0x00466420 }  nodo*
  216. +       anterior->sig   0x00466420 //x36{ dato=25 sig=0x003F50D0 }  nodo*
  217.         anterior->sig->dato 25  int
  218.         clave   35  int
  219. +       inicial     0x004663D8 //x24{ dato=5 sig=0x00400AC8 }   nodo*
  220.  
  221. // Cuarto while - listabuscar();
  222.  
  223. +       anterior    0x00466420 //x36{ dato=25 sig=0x003F50D0 }  nodo*
  224. +       anterior->sig   0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  225.         anterior->sig->dato 30  int
  226.         clave   35  int
  227. +       inicial     0x004663D8 //x24{ dato=5 sig=0x00400AC8 }   nodo*
  228.  
  229. // Quinto while - listabuscar();
  230. +       anterior    0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  231. +       anterior->sig   0x00000000  nodo*
  232.         clave   35  int
  233. +       inicial     0x004663D8 //x24{ dato=5 sig=0x00400AC8 }   nodo*
  234.  
  235. // Return anterior:
  236.  
  237. +       anterior    0x003F50D0 //x30{ dato=30 sig=0x00000000 }  nodo*
  238. +       anterior->sig   0x00000000  nodo*
  239.         clave   35  int
  240. +       inicial     0x004663D8 //x24{ dato=5 sig=0x00400AC8 }   nodo*
  241.  
  242. // anterior=buscarLista(nuevo->dato);
  243.  
  244. +       anterior    0x004664C8 //x9{ dato=20 sig=0x00466420 }   nodo*
  245. +       nuevo       0x00466468 //x42{ dato=35 sig=0x00000000 }  nodo*
  246.         nuevo->dato 35  int
  247.  
  248. // nuevo->sig=NULL;
  249.  
  250. +       nuevo   0x00466468 { dato=35 sig=0x00000000 }   nodo*
  251. +       nuevo->sig  0x00000000  nodo*
  252.  
  253. // anterior->sig=nuevo;
  254.  
  255. +       anterior    0x003F50D0 //x12{ dato=30 sig=0x00000000 }  nodo*
  256. +       anterior->sig   0x00000000  nodo*
  257. +       nuevo       0x00466468 //x42{ dato=35 sig=0x00000000 }  nodo*
  258. +       nuevo->sig  0x00000000  nodo*