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?