2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Alejandro Blanco -
Número de respuestas: 18
En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Marcos Nicolas Garcia Durand -
Hola, cómo están?

En la siguiente función:

void insertarClientesABBTClientesSucursalesLDE(TClientesSucursalesLDE clientesSucursalesLDE, TClientesABB clientesABB, int idSucursal){

¿ Está bien que sea void y el pasaje sea por valor?

Desde ya muchas gracias.
En respuesta a Marcos Nicolas Garcia Durand

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Raul Maglione -
Buenas, Marcos,
La función está definida correctamente. Si te llama la atención que sea void y que todos los parámetros se pasen por valor, pero aún así inserte correctamente el clienteABB, es debido a que, aunque los parámetros sean pasados por valor, clientesSucursalesLDE es un puntero que referencia una posición específica en memoria. La dirección a la que apunta clientesSucursalesLDE no cambia, pero lo que se guarda en esa posición de memoria sí, permitiendo la modificación de la estructura guardada sin problemas.
Espero la aclaración sirva, ante cualquier duda no dudes en volver a consultar.

Saludos,
Raúl.
En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Ismael Ferro Odriozola -
Buenas, cual es el objetivo de la variable idSucursal?
Yo la agregué en el struct por las dudas, pero el programa jamás me pide su uso, viendo las entradas y salidas. Puede ser que se pueda hacer el subprograma sin mencionarla? Y por lo que vi en el mensaje de recién, antes la pedían en el módulo de imprimir y ahora ya la quitaron.

Gracias, sds.
En respuesta a Ismael Ferro Odriozola

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Alejandro Blanco -
Ismael.

El objetivo es identificar o asociar a la colección de clientesABB a una sucursal. Lo usas cuando insertas un nuevo TClientesABB en TClientesSucursalesLDE.
En nuestro caso no lo usamos para más nada, ya que los TClientesABB se ordenan en la LDE según la edad promedio.

Saludos

Alejandro B
En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Roberto Dardo Hernandez Paonetti -
Hola :)
Estaba probando el test: clientesSucursalesLDE1-crear-insertar-liberar.in, y al leerlo pensé que sería conveniente antes de seguir con las otras funciones, probar una modificación de ese test cargando los TClientesABB con varios clientes cada árbol. Al entrar los comandos manualmente, ingreso > agregarAClientesSucursalesLDE, y el programa se cuelga.. no entendía porqué, el test con make daba ´bien´, entonces busqué en el principal, y ví que la función espera un 'int': `int idSucursal = leerInt();` entonces, siguiendo manualmente, si agrego un número, '1' por ej.: `> agregarAClientesSucursalesLDE 1`, anda bien. Mi pregunta es, porqué anda sin ese argumento en los <tests>.in ?  
De principal.cpp:
```
void main_agregarClientesASucursalesLDE(TClientesSucursalesLDE &clientesSucursalesLDE, TClientesABB &clientesABB){
    assert(clientesABB != NULL); 
    int idSucursal = leerInt();
    insertarClientesABBTClientesSucursalesLDE(clientesSucursalesLDE, clientesABB, idSucursal);
    clientesABB = NULL;
    printf("Se ha agregado el clientesABB a SucursalesLDE de forma exitosa.\n");
```
Gracias!
En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de María Lucía Panizzi Sofia -
Buenas al crear un TClientesSucursalesLDE vacia, lo hacemos como un puntero a NULL o como un puntero al cabezal q tenga en incio y final NULL
gracias
En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Magdalena Amarante Mastropierro -
Una pregunta en void liberarTClientesSucursalesLDE(TClientesSucursalesLDE &clientesSucursalesLDE);
cuando en la terminal le paso la linea CrearClientesSucursalesLDE estoy creando una lista vacia verdad? En ese caso no tendríamos que hacer nada porque no hay nada para liberar. Yo borre todo mi codigo en liberar para ver si al pasarle una lista vacia tendria que andar porque no hay nada que liberar y me crea bien la lista vacia pero cuando mando liberarClientesSucursalesLDE me da error principal: principal.cpp:921: void main_liberarClientesSucursalesLDE(rep_clientesSucursalesLDE*&): Assertion `clientesSucursalesLDE != NULL' failed.
Abortado (`core' generado)
En respuesta a Magdalena Amarante Mastropierro

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Marcos Nicolas Garcia Durand -

Hola,

A mi me pasó ese error. Al crear la lista vacía estaba retornando NULL, lo que hice fue cambiarla para que devuelva un cabezal con punteros NULL al inicio y al final y con eso se solucionó.

En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Gaston Alvarez Dorado -
Hola,

Entiendo que para el momento de insertar los clientesABB solo es necesario contar con la edad promedio, y en caso de haber repetidos los voy agregando al final del último repetido. Pero el problema es que para que el test2 me de correcto al momento de imprimir, tengo que ordenarlos según el ID al momentos de insertar.

Saludos, gracias.
En respuesta a Gaston Alvarez Dorado

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Roberto Dardo Hernandez Paonetti -
Dentro de los árboles clientesABB, el orden es por 'IdTCliente'. Dentro de la listaDE, el orden es por 'edadPromedioTClientesABB' de cada árbol (de menor a mayor, ó de llegada a la listaDE (cola) si tienen igual edad promedio) y se imprime árbol por árbol, desde inicial hasta final de la listaDE.
En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Franco Mateo Vienni Baptista -
Hola,

¿Puede ser que el orden de la función insertarClientesABBTClientesSucursalesLDE deba ser O(n*m) donde n es la cantidad de elementos en la lista y m el tamaño del árbol mas grande en la lista? (la tarea pide que sea O(n))
Pregunto porque al ordenar la lista por edadPromedio se debe ir comparando y conseguir la edadPromedio no es O(1) sino que es O(m) donde m es el tamaño del árbol.

Saludos,
Franco.
En respuesta a Alejandro Blanco

Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...

de Gastón Zabaleta Prieto -
.Hola, tengo este problema con clientesSucursalesLDE1-crear-insertar-liberar