Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.93 KB | None | 0 0
  1. pila_t* iter_rangos(const abb_t* arbol, char* desde, char* hasta){
  2.     pila_t* pila = pila_crear();
  3.     if(!pila) return NULL;
  4.     pila_t* pila_aux = pila_crear();
  5.     if(!pila_aux){
  6.         pila_destruir(pila);
  7.         return NULL;
  8.     }
  9.     _iter_rangos(arbol, pila, arbol -> raiz, desde, hasta);
  10.     while(!pila_esta_vacia(pila)){
  11.         pila_apilar(pila_aux, pila_desapilar(pila));
  12.     }
  13.     pila_destruir(pila);
  14.     return pila_aux;
  15. }
  16.  
  17. bool _iter_rangos(const abb_t* arbol, pila_t* pila, nodo_abb_t* nodo, char* desde, char* hasta){
  18.     if (!nodo){
  19.         return true;
  20.     }
  21.     if (arbol->cmp(nodo->clave, desde) >= 0){
  22.         if(!_iter_rangos(arbol, pila, nodo->izq, desde, hasta)) return false;
  23.     }
  24.     if (arbol->cmp(nodo->clave, desde) >= 0 && arbol->cmp(nodo->clave, hasta) <= 0){
  25.         if(!pila_apilar(pila, nodo->clave)) return false;
  26.     }
  27.     if(arbol->cmp(nodo->clave, hasta) > 0){
  28.  
  29.         return false;
  30.     }
  31.     if(!_iter_rangos(arbol, pila, nodo->der, desde, hasta)) return false;
  32.     return true;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement