Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "arbol.h"
- #include "lista.h"
- void camino(TBinaryTree *T,int ini,int fin){
- TLista L;
- Lista_Crear(&L);
- TNode *q=T->root;
- TNode *p=T->root;
- TNode *r;
- //Este primer bucle va a recorrer su descendencia en común
- while (p==q){
- Lista_InsertarIzq(&L, q->elem);
- Lista_Eliminar(&L, r->elem);
- r=q;
- if (p->elem > ini) p=p->left;
- else p=p->right;
- if (q->elem > fin) q=q->left;
- else q=q->right;
- }
- //Ahora cada uno
- while(p->elem!=ini){
- Lista_InsertarIzq(&L, p->elem);
- if (p->elem > ini) p=p->left;
- else p=p->right;
- }
- Lista_InsertarIzq(&L, ini);
- while(q->elem != fin){
- Lista_InsertarDer(&L, q->elem);
- if (q->elem > fin) q=q->left;
- else q=q->right;
- }
- Lista_InsertarDer(&L, fin);
- Lista_Imprimir(L);
- }
- int main(){
- TBinaryTree T;
- init_tree(&T);
- insert(&T,10);
- insert(&T,6);
- insert(&T,15);
- insert(&T,4);
- insert(&T,7);
- insert(&T,13);
- insert(&T,17);
- insert(&T,0);
- camino(&T,0,7);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment