UTNianos

Versión completa: [Aporte] Final del 6 de agosto 2013
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente, recien hice la parte practica del final del 6 de agosto 2013 , https://drive.google.com/file/d/0BztSCom...sp=sharing , ese es el final

y aca mi resolucion


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct t_nodo{

int edad;
char Nombre[80];
struct t_nodo *siguiente;
}Nodo;

void ListSort (Nodo *pila, char *filename);
{
FILE *fp;
fp=fopen(filename,"r+t");
char buff[85];
char *buffer;
Nodo *aux;

while(fgets(buff,sizeof(buff),fp) != EOF)
{
aux = (Nodo *)malloc(sizeof(Nodo));

buffer= strtok(buff,",");
aux->edad = atoi(buffer); // campo edad lleno
buffer = strtok(NULL,",");
strcpy(aux->nombre,buffer); // campo nombre lleno
insertar_nodo(pila,aux);
}
fclose(fp);
}

void insertar_nodo(NODO *pila,NODO *aux) // se van a insertar alfabeticamente A to Z
{

if(pila == NULL)
{
pila = aux;
aux->next = NULL;
}
else
{

if( strcmp(pila->nombre,aux->nombre)>0)
{
aux->next = pila;
pila = aux;
}
else
{
Nodo *var1,*var2;
var1 = pila->next;
var2 = pila;
while( strcmp(var1->nombre,aux->nombre)<0 && var1->next != NULL)
{
var2 = var2->next;
var1 = var1->next;
}
if( strcmp(var1->nombre,aux->nombre)>0)
{
aux->next=var1;
var2->next= aux;
}
else
{
var1->next = aux;
aux->next =NULL,
}

}
}
}


Che está bueno lo de ordenar a medida que insertas nodos, pero estás seguro de que te va a salir hacerlo en papel?
Yo para ordenar una lista en el final hice 3 funciones...

1) saca nodo..
2) mete nodo ordenado
3) lista_nueva = lista_vieja;
En el segundo strtok() te falta asignar a buffer.
URLs de referencia