Lista simple eliminar nodo segun un valor

Iniciado por Beginner Web, 15 Septiembre 2018, 06:13 AM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

Buenas no entiendo el comportamiento de este procedimiento y mas precisamente en el ciclo for

Código (cpp) [Seleccionar]
typedef struct tnodo *pnodo;//Estructura de la lista
typedef struct tnodo{
int dato;
pnodo sig;
};

pnodo quitar_nodo(pnodo &lista, int valor)//Metodo quitar nodo
{
pnodo borrado, i;
if(lista==NULL){
borrado=NULL;
}
else{
if(lista->dato==valor){
borrado=lista;
lista=borrado->sig;
borrado->sig=NULL;
}
else{
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
if(i->sig!=NULL){
borrado=i->sig;
i->sig=borrado->sig;
borrado->sig=NULL;
}
else{
borrado=NULL;
}
}
}
return borrado;
}

Alguien que me lo explique en cristiano por favor?  ;-)
7w7

6666

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#.

Beginner Web

#2
 ;-)
7w7