SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: LUCI_FER en Miércoles 5 de Junio de 2002, 19:22

Título: Re: LISTA DOBLEMENTE ENLAZADA
Publicado por: LUCI_FER en Miércoles 5 de Junio de 2002, 19:22
NECESITO HACER ESTA FUNCION KE ME INTERCAMBIE LOS ELEMENTOS KE RECIBE COMO PARAMETROS, ALGUIEN ME ECHA UNA MANO?
void intercambiar ( tipodatos *arg1, tipodatos *arg2)

ESTA ES LA ESTRUCTURA:
typedef struct tipodatos
{
   double tllegada;
   double tdemandado;
   struct tipodatos *sgte;
   struct tipodatos *ant;
}tipodatos;
Título: Re: LISTA DOBLEMENTE ENLAZADA
Publicado por: dheak en Jueves 6 de Junio de 2002, 00:09
A ver si es esto:

void intercambio(tipodatos *arg1, tipodatos *arg2)
{
  tipodatos temp;
  temp.tllegada = arg1->tllegada;
  temp.tdemandado = arg1->tdemandado;
  temp.sgte = arg1->sgte;
  temp.ant = arg1->ant;
  arg1->tllegada = arg2->tllegada;
  arg1->tdemandado = arg2->tdemandado;
  arg1->sgte = arg2->sgte;
  arg1->ant = arg2->ant;
  arg2->tllegada = arg1->tllegada;
  arg2->tdemandado = arg1->tdemandado;
  arg2->sgte = arg1->sgte;
  arg2->ant = arg1->ant;
}

Es un poco burraco el algoritmillo pero supongo que funciona.;). No se si existira alguna funcion que te copie estructuras enteras, pero bueno, al fin y al cabo acabara por ser lo mismo. Espero haberte ayudado.

Saludos.
Título: Re: LISTA DOBLEMENTE ENLAZADA
Publicado por: dheak en Jueves 6 de Junio de 2002, 00:19
oops, lo siento, problemas con el copiar pegar. je je. Este es el codigo:

void intercambio(tipodatos *arg1, tipodatos *arg2)
{
 tipodatos temp;
 temp.tllegada = arg1->tllegada;
 temp.tdemandado = arg1->tdemandado;
 temp.sgte = arg1->sgte;
 temp.ant = arg1->ant;
 arg1->tllegada = arg2->tllegada;
 arg1->tdemandado = arg2->tdemandado;
 arg1->sgte = arg2->sgte;
 arg1->ant = arg2->ant;
 arg2->tllegada = temp.tllegada;
 arg2->tdemandado = temp.tdemandado;
 arg2->sgte = temp.sgte;
 arg2->ant = temp.ant;
}

Ahora si. Ta luego.
Título: Re: LISTA DOBLEMENTE ENLAZADA
Publicado por: dheak en Jueves 6 de Junio de 2002, 00:19
oops, lo siento, problemas con el copiar pegar. je je. Este es el codigo:

void intercambio(tipodatos *arg1, tipodatos *arg2)
{
 tipodatos temp;
 temp.tllegada = arg1->tllegada;
 temp.tdemandado = arg1->tdemandado;
 temp.sgte = arg1->sgte;
 temp.ant = arg1->ant;
 arg1->tllegada = arg2->tllegada;
 arg1->tdemandado = arg2->tdemandado;
 arg1->sgte = arg2->sgte;
 arg1->ant = arg2->ant;
 arg2->tllegada = temp.tllegada;
 arg2->tdemandado = temp.tdemandado;
 arg2->sgte = temp.sgte;
 arg2->ant = temp.ant;
}

Ahora si. Ta luego.
Título: Re: LISTA DOBLEMENTE ENLAZADA
Publicado por: LUCI_FER en Jueves 6 de Junio de 2002, 07:30
asi lo puse yo pero me pierde un nodo, y si los ke le mando son el primero y el ultimo de la lista se peta
Título: LISTA DOBLEMENTE ENLAZADA
Publicado por: LamKros en Lunes 1 de Julio de 2002, 13:42
/*
La forma que en trabajas con punteros es dsitinta a como lo hago yo, pero creo que la he entendido y esta es la solucion que he encontrado. Si no funciona, quedate con la idea
*/

void intercambiar(tipodatos *arg1, tipodatos *arg2)
{
tipodatos temp;
temp.tllegada = arg1->tllegada;
temp.tdemandado = arg1->tdemandado;
arg1->tllegada = arg2->tllegada;
arg1->tdemandado = arg2->tdemandado;
arg2->tllegada = temp.tllegada;
arg2->tdemandado = temp.tdemandado;
}