Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/05/2013, 05:07
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: programa dejo de funciona (lista)

"...alguien me puede decir ¿por que?..."

Porque aux1 no está definido, y como no lo inicializaste a nulo no tienes forma de hacer ninguna comprovacion de error. Cuando entras 2 y 1 se cumple que if(q->dato < aux->dato), pero ahi no asignas nada a aux1, sino que solo asignas aux1 en el siguiente else pero que en este caso no entras:

Código:
if(p==NULL){
		p=q;
	}
	else {//en la segunda llamada entras aqui
		aux = (struct nodo*)p;
		if(q->dato < aux->dato) {//se cumple esto
			q->siguiente=aux;
			p=q;              
		}
		else {//y no se ejecuta esto
			aux=(struct nodo*)p;
			while(aux->dato<q->dato&&aux->siguiente!=NULL) {
				aux1=aux;//por lo tanto no asignas nada a aux1
				aux=aux->siguiente;
			}
		}
		
		if(aux->siguiente == NULL && aux->dato < q->dato) {
			aux->siguiente = q;                                       
		}
		else {//aqui aux1 contiene datos basura
			aux1->siguiente = q;
			q->siguiente = aux;
		}
	}
Saludos
vosk