示例#1
0
//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;
}
示例#2
0
bool ListaGrupo::vacia(){

	if (getCab() == NULL)
		return true;
	else
		return false;
}
示例#3
0
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;
}
示例#4
0
void ListaCompra::guardarListas(){
	NodoCompra * nodo = getCab();
	while (nodo != NULL) {
		almacenarListaEnFichero(nodo->getLineaDetalle());
		nodo = nodo->getSgte();
	}
}
示例#5
0
NodoCompra * ListaCompra::dirNodo(char * pcodigo){
	NodoCompra *nodo = getCab();
	while (nodo != nullptr && strcmp(nodo->getLineaDetalle()->getProducto(), pcodigo) != 0)
		nodo = nodo->getSgte();

	return nodo;
}
示例#6
0
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;


}
示例#7
0
void ListaCompra::insertarFinal(InfoCompra * pinfo) {
	NodoCompra * nodo = dirUltimo();
	if (getCab() == NULL)
		setCab(new NodoCompra(pinfo));
	else
		nodo->setSgte(new NodoCompra(pinfo));

	++tamanio;
}
示例#8
0
void ListaCompra::vaciar() {
	NodoCompra *nodo = getCab();
	while (nodo != nullptr) {
		NodoCompra *borrar = nodo;
		nodo = nodo->getSgte();
		delete borrar;
	}
	setCab(NULL);
	setTamanio(0);
}
示例#9
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();
}
示例#10
0
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;
}
示例#11
0
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;


}
示例#12
0
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;

}
示例#13
0
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();
	}


}
示例#14
0
void ListaCompra::insertarInicio(InfoCompra * pinfo) {
	NodoCompra * nodo = new NodoCompra(pinfo);
	nodo->setSgte(getCab());
	setCab(nodo);
	++tamanio;
}
示例#15
0
NodoCompra * ListaCompra::dirUltimo(){
	NodoCompra *nodo = getCab();
	for (int i = 1; i < getTamanio(); ++i)
		nodo = nodo->getSgte();
	return nodo;
}