//revisar bool ListaCompra::elimina(char * pcodigo) { if (estaVacia()) return false; if (strcmp(getCab()->getLineaDetalle()->getProducto(), pcodigo) == 0) { NodoCompra *borrar = getCab(); setCab(getCab()->getSgte()); delete borrar; tamanio--; } return true; }
bool ListaGrupo::vacia(){ if (getCab() == NULL) return true; else return false; }
bool ListaCompra::insertarAcendente(InfoCompra * pinfo) { char* codigo = pinfo->getProducto(); bool seInserta = estaVacia() || strcmp(codigo, dirCodigoDeNodo(getCab())) < 0; if (seInserta) insertarInicio(pinfo); else { int i = 1; NodoCompra *nodo = getCab(); while (nodo->getSgte() && (i = strcmp(codigo, dirCodigoDeNodo(nodo->getSgte()))) > 0) nodo = nodo->getSgte(); if (seInserta = (i != 0)) insertarDespuesDe(pinfo, nodo->getLineaDetalle()->getProducto()); } return seInserta; }
void ListaCompra::guardarListas(){ NodoCompra * nodo = getCab(); while (nodo != NULL) { almacenarListaEnFichero(nodo->getLineaDetalle()); nodo = nodo->getSgte(); } }
NodoCompra * ListaCompra::dirNodo(char * pcodigo){ NodoCompra *nodo = getCab(); while (nodo != nullptr && strcmp(nodo->getLineaDetalle()->getProducto(), pcodigo) != 0) nodo = nodo->getSgte(); return nodo; }
NodoGrupo *ListaGrupo::DirUltimo(){ //Devuelve la direccion del ultimo nodo de la lista //Si la lista esta vacia devuelve null NodoGrupo *aux = NULL; if(getCab() != NULL){ aux = getCab(); while(aux->getSgte()!=NULL){ aux = aux ->getSgte(); //Para pasar al siguiente nodo } } return aux; }
void ListaCompra::insertarFinal(InfoCompra * pinfo) { NodoCompra * nodo = dirUltimo(); if (getCab() == NULL) setCab(new NodoCompra(pinfo)); else nodo->setSgte(new NodoCompra(pinfo)); ++tamanio; }
void ListaCompra::vaciar() { NodoCompra *nodo = getCab(); while (nodo != nullptr) { NodoCompra *borrar = nodo; nodo = nodo->getSgte(); delete borrar; } setCab(NULL); setTamanio(0); }
InfoCompra * ListaCompra::obtenerPorIndex(int pindex) { NodoCompra * nodo = getCab(); if (pindex >= getTamanio()) return NULL; else { for (int i = 0; i < pindex; i++) { nodo = nodo->getSgte(); } } return nodo->getLineaDetalle(); }
bool ListaCompra::insertarIndex(InfoCompra * pinfo, int pindex) { NodoCompra *nodo = getCab(); if (pindex <= getTamanio()) { for (int i = 0; i < pindex; i++) { nodo = nodo->getSgte(); } insertarDespuesDe(pinfo, nodo->getLineaDetalle()->getProducto()); return true; } return false; }
NodoGrupo *ListaGrupo::DirAnterior(char * _nombre){ //Devuelve la direccion del nodo anterior al nodo del nombre _nombre //Si no existe retorna NULL NodoGrupo *aux; if((getCab() == NULL ) || (getCab()->getGrupo()->getNombreGrupo(), _nombre) == 0) aux = NULL; else{ aux = getCab(); bool encontrado = false; while((aux->getSgte() != NULL) && (!encontrado)){ if(strcmp(aux->getSgte()->getGrupo()->getNombreGrupo(), _nombre) != 0) aux = aux->getSgte(); else encontrado = true; } } return aux; }
NodoGrupo *ListaGrupo::DirNodo(char * _nombre){ //Devuelve la direccion del nodo cuyo nombre sea _nombre //Sino existe devuelve null NodoGrupo *aux = getCab(); bool encontrado = false; while((aux != NULL) && (!encontrado)){ if(strcmp(aux->getGrupo()->getNombreGrupo(), _nombre) != 0) aux = aux->getSgte(); else encontrado = true; } return aux; }
void ListaGrupo::desplegarLISTA(){ //Desplegar todos los datos de la estructura NodoGrupo *aux =getCab(); cout << "Lista de Grupos" <<endl; while (aux != NULL) { cout << "Nombre del grupo: " << aux->getGrupo()->getNombreGrupo() << endl; cout << "Pais de procedencia: " << aux->getGrupo()->getPaisProcedencia() << endl; cout << "Fecha de creacion: " << aux->getGrupo()->getFechaCreacion() << endl << endl; aux = aux->getSgte(); } }
void ListaCompra::insertarInicio(InfoCompra * pinfo) { NodoCompra * nodo = new NodoCompra(pinfo); nodo->setSgte(getCab()); setCab(nodo); ++tamanio; }
NodoCompra * ListaCompra::dirUltimo(){ NodoCompra *nodo = getCab(); for (int i = 1; i < getTamanio(); ++i) nodo = nodo->getSgte(); return nodo; }