Advertisement
yonatanhc

abb_tp2.c

Jun 14th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. abb_nodo_t* buscar_raiz_aux(const abb_t *arbol,const char* desde){
  2. abb_nodo_t* nodo=arbol->raiz;
  3. int comparar;
  4. while((comparar=(arbol->comparar_clave(nodo->clave,desde))) == 0){
  5. abb_nodo_t* aux=nodo;
  6. if (comparar > 0){
  7. nodo=aux->derecha;
  8. }
  9. else{
  10. nodo=aux->izquierda;
  11. }
  12. }
  13. return nodo;
  14. }
  15.  
  16. abb_iter_t *abb_iter_in_crear(const abb_t *arbol,const char* desde) {
  17.  
  18. abb_iter_t* iter = malloc(sizeof(abb_iter_t));
  19. if (!iter) {
  20. return NULL;
  21. }
  22.  
  23. pila_t* pila = pila_crear();
  24. if (!pila) {
  25. free(iter);
  26. return NULL;
  27. }
  28.  
  29. iter->pila = pila;
  30. // Apilo raíz y todos los hijos izquierdos.
  31.  
  32. abb_nodo_t* aux=arbol->raiz;
  33. if (desde){
  34. aux=buscar_raiz_aux(arbol,desde);
  35. pila_apilar_izquierdos(iter->pila,aux->derecha);
  36. }
  37. else{
  38. pila_apilar_izquierdos(iter->pila,aux);
  39. }
  40.  
  41. return iter;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement