Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Beginner Web en 15 Septiembre 2018, 06:13 am



Título: Lista simple eliminar nodo segun un valor
Publicado por: Beginner Web en 15 Septiembre 2018, 06:13 am
Buenas no entiendo el comportamiento de este procedimiento y mas precisamente en el ciclo for

Código
  1. typedef struct tnodo *pnodo;//Estructura de la lista
  2. typedef struct tnodo{
  3. int dato;
  4. pnodo sig;
  5. };
  6.  
  7. pnodo quitar_nodo(pnodo &lista, int valor)//Metodo quitar nodo
  8. {
  9. pnodo borrado, i;
  10. if(lista==NULL){
  11. borrado=NULL;
  12. }
  13. else{
  14. if(lista->dato==valor){
  15. borrado=lista;
  16. lista=borrado->sig;
  17. borrado->sig=NULL;
  18. }
  19. else{
  20. for(i=lista;i->sig!=NULL && valor!=(i->sig)->dato;i=i->sig);//De aqui en adelante no lo tengo bien en claro, se como lo hace pero el codigo me es incomprensible
  21. if(i->sig!=NULL){
  22. borrado=i->sig;
  23. i->sig=borrado->sig;
  24. borrado->sig=NULL;
  25. }
  26. else{
  27. borrado=NULL;
  28. }
  29. }
  30. }
  31. return borrado;
  32. }
Alguien que me lo explique en cristiano por favor?  ;-)


Título: Re: Lista simple eliminar nodo segun un valor
Publicado por: 6666 en 15 Septiembre 2018, 07:39 am
Por que no pruebas c++, no entiendo por que renegador con esto, incluso aprender RUST es una buena opcion, la vision de ver objetos es una de las grandes ideas en la programacion, con c++ creas listas y no haces este proceso, usas for o while, incluso otras formas, si sos un programador, entonces la mejor opcion para tener una version concreta de las cosas es c#.


Título: Re: Lista simple eliminar nodo segun un valor
Publicado por: Beginner Web en 15 Septiembre 2018, 09:00 am
 ;-)