Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct nodo_albero{
- int info;
- struct nodo_albero *sx;
- struct nodo_albero *dx;
- };
- typedef struct nodo_albero *Albero;
- int* albero_cammino(Albero T, int v){
- int* A = (int*)calloc(altezzafoglia(T,v),sizeof(int));
- int i;
- if(!T || !foglia(T,v))
- return;
- while(T->info != v){
- A[i] = T->info;
- i++;
- if(v < T->info)
- T = T->sx;
- T = T->dx;
- }
- A[i] = T->info;
- return A;
- }
- int foglia(Albero T, int v){
- if(!T)
- return 0;
- else if(T->info == v && !T->sx && T->dx)
- return 1;
- else if (v < T->info)
- return foglia(T->sx,v);
- else
- return foglia(T->dx,v);
- }
- int altezzafoglia(Albero T, int v){
- if(!T)
- return 0;
- else if(T->info == v && !T->sx && !T->dx)
- return 1
- else if(v < T->info)
- return 1 + altezzafoglia(T->sx,v);
- else
- return 1 + altezzafoglia(T->dx,v);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement