Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abb_nodo_t* buscar_raiz_aux(const abb_t *arbol,const char* desde){
- abb_nodo_t* nodo=arbol->raiz;
- int comparar;
- while((comparar=(arbol->comparar_clave(nodo->clave,desde))) == 0){
- abb_nodo_t* aux=nodo;
- if (comparar > 0){
- nodo=aux->derecha;
- }
- else{
- nodo=aux->izquierda;
- }
- }
- return nodo;
- }
- abb_iter_t *abb_iter_in_crear(const abb_t *arbol,const char* desde) {
- abb_iter_t* iter = malloc(sizeof(abb_iter_t));
- if (!iter) {
- return NULL;
- }
- pila_t* pila = pila_crear();
- if (!pila) {
- free(iter);
- return NULL;
- }
- iter->pila = pila;
- // Apilo raíz y todos los hijos izquierdos.
- abb_nodo_t* aux=arbol->raiz;
- if (desde){
- aux=buscar_raiz_aux(arbol,desde);
- pila_apilar_izquierdos(iter->pila,aux->derecha);
- }
- else{
- pila_apilar_izquierdos(iter->pila,aux);
- }
- return iter;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement