Tema: Ordenación
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/03/2005, 09:13
beginner01
 
Fecha de Ingreso: noviembre-2004
Mensajes: 28
Antigüedad: 20 años, 2 meses
Puntos: 0
Ok, ahí va el programa entero :-)

#include<stdio.h>
#include<conio.h>
#include<alloc.h>

visualizar();
clasificar();

struct nodo
{
short n;
struct nodo *sig;
};

short aux;
struct nodo *nuevo, *ultimo, *primero=0;

void main(void)
{
clrscr();
printf("Introducir numero o 0 para terminar: ");
scanf("%d",&aux);

while(aux!=0)
{
nuevo=(struct nodo*)malloc(sizeof(struct nodo));
nuevo->n=aux;
nuevo->sig=0;

if(primero==0)
{
primero=nuevo;
ultimo=nuevo;
}
else
{
ultimo->sig=nuevo;
ultimo=nuevo;
}
clrscr();

printf("Introducir numero o 0 para terminar: ");
scanf("%d",&aux);
}

clasificar();
visualizar();
}


clasificar()
{
short sw;
do
{
for(nuevo=primero,sw=0;nuevo->sig!=0;nuevo=nuevo->sig)
{
ultimo=nuevo->sig;
if(nuevo->n > ultimo->n)
{
aux=ultimo->n;
ultimo->n=aux;
sw=1;
}
}
}
while(sw==1);
}

visualizar()
{
for(nuevo=primero;nuevo!=0;nuevo=ultimo)
{
printf("%d ",nuevo->n);
ultimo=nuevo->sig;
free(nuevo);
}
}