C/Visual C - Ordena lista

 
Vista:

Ordena lista

Publicado por Juan Carlos (8 intervenciones) el 09/04/2004 18:13:23
Hola a todos los que visitan este foro, necesito su ayuda

Lo que pasa es que elabore un codigo en borland C pero no me realiza una funcion que quiero(((ordenar lista o numeros))) les dejo un ejemplo de un compañero de clase elaboro y asi deberia quedar

Dato de la lista 1: 1
Dato de la lista 1: 2
Dato de la lista 1: 4
Dato de la lista 1: 5

Dato de la lista 1: 3

Salida: 1,2,3,4,5

-*-*-*-*-*-**-*-*-*--*-**---**-*-*-*-*****-*-*-*-*-*-*-*-*-*-*-*-*-*-*---*-*-*-*-*-*-*-*
#include<stdlib.h>
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>

struct Lista{
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordena lista

Publicado por Juan Carlos (8 intervenciones) el 09/04/2004 18:16:11
int Dato;
struct Lista *sig;
};

struct Lista *CreaEspacio(struct Lista *L, int Dato);
struct Lista *InsertaNodo(struct Lista *L, int Dato);
struct Lista *Concatena(struct Lista *a, struct Lista *b);
struct Lista *Insertame(struct Lista *a,struct Lista *nuevo);
void ImprimeLista(struct Lista *l);

int main()
{

struct Lista *l1=NULL,*l2 =NULL;
int i,dato;
for(i=1;i<=4;++i){
printf("Dato de lista1: ");scanf("%d",&dato);
l1=InsertaNodo(l1,dato);

}
for(i=1;i<=1;++i){
printf("Dato de lista2: ");scanf("%d",&dato);
l2=InsertaNodo(l2,dato);

}

l1=Insertame(l1,l2);
printf(" Holaaaaa : ");
ImprimeLista(l1);
getch();
return 0;
}

struct Lista *InsertaNodo(struct Lista *l, int Dato)
{
if(l==NULL) l=CreaEspacio(l,Dato);
else l->sig=InsertaNodo(l->sig,Dato);
return l;
}
struct Lista *CreaEspacio(struct Lista *l, int Dato)
{
if((l=(struct Lista *)malloc(sizeof(struct Lista)))==NULL)
{perror("Falta de memoria");abort();}
l->sig=NULL;
l->Dato=Dato;
return l;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordena lista --tercera parte

Publicado por Juan Carlos (8 intervenciones) el 09/04/2004 18:17:52
void ImprimeLista(struct Lista *l)
{
if(l!=NULL) {printf("Dato: %d ",l->Dato);ImprimeLista(l->sig);}
}
struct Lista *Concatena(struct Lista *a, struct Lista *b)
{
if(a==NULL) a=b;
else a->sig=Concatena(a->sig,b);
return a;
}

struct Lista *Insertame(struct Lista *a,struct Lista *nuevo)
{

if(a==NULL){ a=nuevo;}
else if((nuevo->Dato)<(a->Dato)){nuevo->sig=a; a=nuevo; }
else if((nuevo->Dato)>(a->Dato)){a->sig=Insertame(a,nuevo);}
else{
nuevo->sig=a->sig;
a->sig=nuevo;

}
return a;
}
*-*-**-**-*-**-*--**-**-**-**-*--*-*-*-*-*-*-*-**-*-
no cupo el codigo completo jejeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordena lista --tercera parte

Publicado por Oswaldo (1 intervención) el 12/04/2004 05:13:03
el fallo de tu codigo es un operador logico, pero todavia no encuentro cual es, haber si alguien mas puede ayudar en esto....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

= entre todos

Publicado por cualquiera (1 intervención) el 12/04/2004 06:39:58
Yo tampoco puedo enkontrar el error logico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tema dificil !!

Publicado por 2HD (1 intervención) el 12/04/2004 17:36:03
Ya junte las tres partes del codigo , pero al compilarlo, me marca un error al terminar de meter los datos, despues le corregi un salto de linea que tenia pero ahora solo me ordena los primeros 2, aun no he podido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

RE:Tema dificil !!

Publicado por zzzzzz (318 intervenciones) el 13/04/2004 05:05:49
hi! ahorita no tengo mucho tiempo para ponerme a revisar el código, pero yo tengo un programa de listas enlazadas que muestra todas las opciones, ordenar, insertar en medio de 2 nodos, invertir una lista, concatenar 2 listas, si quieres te lo mando o esta aqui mismo en esta pagina en la seccion de codigo fuente en c/visual c, si lo quieres me mandas un mail y luego ya te lo mando a tu correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ORdena

Publicado por Juan carlos (8 intervenciones) el 13/04/2004 05:23:55
Yo digo que es un operador logico, ademas esto es para mis practicas de C

y me gusta usar mis metodos, pero igual y me sirve para comprobar unas cosillas, pero si me pueden ayudar con este, seria mucho mejor

!!!saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordena

Publicado por Juan Carlos (8 intervenciones) el 14/04/2004 08:26:23
estuve analizando el codigo, me di cuenta de que aqui esta el error, en las ultimas lineas, por favor expliquenme un poco sobre ellas!!!

*-*-**-*-**-*-*-**-*-***-

struct Lista *Insertame(struct Lista *a,struct Lista *nuevo)
{

if(a==NULL){ a=nuevo;}
else if((nuevo->Dato)<(a->Dato)){nuevo->sig=a; a=nuevo; }
else if((nuevo->Dato)>(a->Dato)){a->sig=Insertame(a,nuevo);}
else{
nuevo->sig=a->sig;
a->sig=nuevo;

}
return a;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar