Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h> /* ora puoi usare NULL */
- #include <stdlib.h> /* ora puoi usare le funzioni di allocazione dinamica della memoria */
- struct nodo_albero{
- int info;
- struct nodo_albero *sx;
- struct nodo_albero *dx;
- };
- /* scrivi qui la definizione del tipo albero che rappresenta un puntatore alla struttura nodo_albero */
- typedef struct nodo_albero *albero;
- /* scrivi qui eventuali funzioni di appoggio */
- int TrovaT(albero T, int v){
- if(T==NULL)
- return 0;
- else
- if(T->info == v && T->sx==NULL && T->dx==NULL)
- return 1;
- else{
- int ds = TrovaT(T->dx, v);
- int sn = TrovaT(T->sx, v);
- if(ds>0)
- return 1+ds;
- if(sn>0)
- return 1+sn;
- return ds||sn;
- }
- }
- void RiempiArray(albero T, int v, int* punt, int k){
- if(!(T))
- return ;
- if(T->info > v){
- punt[k] = T->info;
- RiempiArray(T->sx, v, punt, k+1);
- }
- else{
- punt[k] = T->info;
- RiempiArray(T->dx, v, punt,k+1);
- }
- }
- /* INIZIO FUNZIONE */
- int* albero_cammino(albero T, int v){
- int LungCammino = TrovaT(T, v), i=0;
- int* A = (int*)calloc(LungCammino, sizeof(int));
- for(i=0; i<LungCammino; i++)
- A[i] = 0;
- int *punt;
- punt = A;
- if(LungCammino>0){
- RiempiArray(T, v, punt, 0);
- for(i=0; i<LungCammino; i++)
- printf("%d ",punt[i]);
- return punt;
- }
- else{
- punt = NULL;
- return punt;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement