Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "tree.h"
- #define N 20
- int max(int a, int b);
- int ancestro(TNode *node, TData a, TData b);
- int esta(TNode *node, TData x);
- int main(){
- TTree arbol;
- crearArbol(&arbol);
- insertar(&arbol,15);
- insertar(&arbol,6);
- insertar(&arbol,3);
- insertar(&arbol,1);
- insertar(&arbol,4);
- insertar(&arbol,9);
- insertar(&arbol,7);
- insertar(&arbol,12);
- insertar(&arbol,20);
- insertar(&arbol,18);
- insertar(&arbol,24);
- insertar(&arbol,17);
- printf("%d\n",ancestro(arbol.root,18,18));
- return 0;
- }
- int max(int a, int b){
- if(a>b)
- return a;
- return b;
- }
- int ancestro(TNode *node, TData a, TData b){
- if(node == NULL)
- return -1;
- if(esta(node->izq,a) && esta(node->der,b))
- return node->info;
- if(esta(node->izq,b) && esta(node->der,a))
- return node->info;
- return max(ancestro(node->izq,a,b),ancestro(node->der,a,b));
- }
- int esta(TNode *node, TData x){
- if(node == NULL)
- return 0;
- if(node->info == x)
- return 1;
- return (esta(node->izq,x) || esta(node->der,x));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement