Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/05/2010, 08:38
gastro
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Ordenar listas alfabeticamente

a ver, tengo un tipedef de esta forma:
Código:
typedef struct nodo {
  char *cadena;
  char *genero;
  char *programa;
  int hora;
  int duracion;
  struct nodo * sig;
} NODO;
despues, creo "NODOS" y los enlazo:

Código:
NODO *creanodo (char *cadena, char *genero, char *programa, int hora, int duracion)
{
  NODO *p = NULL;

  p = (NODO *) malloc(sizeof(NODO));
  if (NULL != p)
	{
	  p->cadena = cadena;
	  p->genero=genero;
	  p->programa=programa;
	  p->hora=hora;
	  p->duracion=duracion;
	  p->sig = NULL;
	}

  return p;
}

void enlaza(NODO *p, NODO **pp)
{
  if (NULL != p)
	{
	  p->sig = *pp;
	  *pp = p;
	}
}
y para finalizar estoy haciendo una funcion que lo ordene, pero no me sale...
Código:
void ordenalista(NODO *p, NODO **pp)
{
  int flag=1;
  NODO *paux=p->sig;
  NODO *paux2=NULL;
  NODO **inicio1=&p;
  NODO **inicio2=&(p)->sig;

  while(flag)
	{
	  flag=0;
	  
	  
	  while(paux!=NULL)
		{
		  if((strcmp( (paux->cadena), (p->cadena) )) > 0)
			{
			  paux2=paux;
			  paux=p;
			  p=paux2;
			  p=p->sig;
			  paux=paux->sig;
			  flag=1;
			}
		  else
			{
			  p=p->sig;
			  paux=paux->sig;
			}
		}
	  p=*inicio1;	
	  paux=*inicio2;
	}
	  
}
¿Alguna solucion?