• Lunes 29 de Abril de 2024, 00:54

Autor Tema:  Re: LISTA DOBLEMENTE ENLAZADA  (Leído 2381 veces)

LUCI_FER

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: LISTA DOBLEMENTE ENLAZADA
« en: Miércoles 5 de Junio de 2002, 19:22 »
0
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;

dheak

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: LISTA DOBLEMENTE ENLAZADA
« Respuesta #1 en: Jueves 6 de Junio de 2002, 00:09 »
0
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.

dheak

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: LISTA DOBLEMENTE ENLAZADA
« Respuesta #2 en: Jueves 6 de Junio de 2002, 00:19 »
0
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.

dheak

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: LISTA DOBLEMENTE ENLAZADA
« Respuesta #3 en: Jueves 6 de Junio de 2002, 00:19 »
0
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.

LUCI_FER

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: LISTA DOBLEMENTE ENLAZADA
« Respuesta #4 en: Jueves 6 de Junio de 2002, 07:30 »
0
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
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

LamKros

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
    • http://www.lamkros.com
LISTA DOBLEMENTE ENLAZADA
« Respuesta #5 en: Lunes 1 de Julio de 2002, 13:42 »
0
/*
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;
}