![]() |
Funcion Insertar en Lista Hola visto este codigo para insertar nodos ordenadamente en una lista cerrada void Insertar (Lista *lista, int v) { pNodo nuevo, anterior; nuevo = new tipoNodo; nuevo->valor = v; if(ListaVacia(*lista) || (*lista)->valor > v) { nuevo->siguiente = *lista; //nuevo->siguiente= lo q apunta lista. *lista = nuevo; //aca cambias el valor de lista. } else { anterior = *lista; //anterior = lo q apunta lista. //Aca esta mi duda que condicion se cumple en anterior->siguiente while(anterior->siguiente && anterior->siguiente->valor <= v) { anterior = anterior->siguiente; } nuevo->siguiente = anterior->siguiente; anterior->siguiente = nuevo; } } Mi duda es en el while. Que condicion se cumple en la siguiente linea? while(anterior->siguiente && ... Una se que es que verifica que el valor del nodo sea menor igual al valor enviado pero con anterior->siguiente que?? Gracias |
Re: Funcion Insertar en Lista Al ser una condicion AND, y al evaluarse de izquierda a derecha, si la primera condicion ya no se cumple, ya no se evalua la siguiente, por eso primero si mira si anterior->siguiente no apunta a NULL, si la condicion estuviera al reves no funcionaria. |
Re: Funcion Insertar en Lista Ahh entiendo ahora entonces esto no corresponde a una lista cerrada porque uno de los nodos apunta a null verdad?? |
Re: Funcion Insertar en Lista Cita:
nodo1 -> nodo2 -> nodo3 -> nodon ->NULL |
Re: Funcion Insertar en Lista Yo lo que haria es hacer lo siguiente /*... . . . while(anterior->siguiente != NULL.... . . . ...*/ nada mas que para mi es mucho mas claro y legible y ademas no se si "anterior->siguiente" puesto antes del "&&" cuasa efecto porque creo que tenes que tener mas cuidadado, "anterior->siguiente" es un puntero que apunta a una direccion de memoria, eso puede ser un entero que esta haciendo fallar la condicion, en cambio haciendo "while(anterior->siguiente != NULL...." obtenes un valor booleano que es lo que necesita una condicion and teoricamente. |
| La zona horaria es GMT -6. Ahora son las 20:49. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.