const char* hash_iter_ver_actual(const hash_iter_t* iter) {
    if (hash_iter_al_final(iter)) return NULL;
    nodo_hash_t* nodo = lista_iter_ver_actual(iter->iter);
    if (nodo != NULL)
        return (nodo->clave);
    return NULL;
}
Beispiel #2
0
Datei: 0.c Projekt: nee47/backup
bool hash_iter_avanzar(hash_iter_t *iter){
  if(hash_iter_al_final(iter)) return false;
  lista_iter_avanzar(iter->iter_lista);
  if (lista_iter_al_final(iter->iter_lista)) {
    iter->indice_actual++;
    while (iter->indice_actual < iter->hash->largo){
      if (iter->hash->tabla[iter->indice_actual]){
	lista_iter_destruir(iter->iter_lista);
	iter->iter_lista = lista_iter_crear(iter->hash->tabla[iter->indice_actual]);
	return true;
      }
      iter->indice_actual++;
    }
  }
  return true;
}
bool hash_iter_avanzar(hash_iter_t* iter) {
    //verifico no estar ya al final
    if (hash_iter_al_final(iter)) return false;
    //avanzo y verifico no estar ahora al final
    lista_iter_avanzar(iter->iter);
    if (!lista_iter_al_final(iter->iter)) return true;
    //como estoy al final de la lista, busco si tengo a donde seguir
    if (iter->posicion == (iter->hash->tamanio)-1) return false;
    //como lo tengo, busco
    size_t posicion = buscar_no_vacia(iter->hash,iter->posicion+1);
    if (!lista_esta_vacia(iter->hash->tabla[posicion])) {
        lista_iter_destruir(iter->iter);
        iter->iter = lista_iter_crear(iter->hash->tabla[posicion]);
        iter->posicion = posicion;
        return true;
    }
    return false;
}
Beispiel #4
0
bool hash_iter_avanzar(hash_iter_t* iter){
	if(hash_iter_al_final(iter)){
		return false;
	}
	if( iter->elemento->siguiente)
	{
		iter->elemento = iter->elemento->siguiente;
	}
	else
	{

		do{
			iter->index++;
			if(iter->index>iter->tabla_hash->tam-1){
				break;
			}
			iter->elemento=iter->tabla_hash->elementos_hash[iter->index];
		}while( iter->elemento == NULL);


	}
	iter->iterados++;
	return true;
}
Beispiel #5
0
Datei: 0.c Projekt: nee47/backup
const char *hash_iter_ver_actual(const hash_iter_t *iter){
  if (hash_iter_al_final(iter)) return NULL;
  daton_t* aux = lista_iter_ver_actual(iter->iter_lista);
  if (!aux) return NULL;
  return aux->clave;
}
Beispiel #6
0
const char* hash_iter_ver_actual(const hash_iter_t* iter){
	if(hash_iter_al_final(iter)){
		return NULL;
	}
	return iter->elemento->llave;
}