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;
- };
- /* scrivi qui la definizione del tipo albero che rappresenta un puntatore alla struttura nodo_albero */
- typedef struct nodo_albero *albero;
- int max(int n, int m){
- if(n>m)
- return n;
- else
- return m;
- }
- int Height(albero n){
- if(n)
- return 1+max(Height(n->sx), Height(n->dx));
- else
- return -1;
- }
- /*Scrivi funzione che ritorna il valore massimo di un array*/
- int ValoreMax(int *puntArray, int n){
- int i=0, max = 0;
- for(i=0; i<n; i++){
- if(max<puntArray[i])
- max = puntArray[i];
- }
- return max;
- }
- /*Questa funzione per ogni nodo ad altezza k, incrementa il valore, riempieno quindi un array con il numero di nodi alla stessa altezz. Insomma modifica solo il contenuto di un array puntatoa*/
- int Larghezza_AlberoRic(int *punt, albero T, int k){
- if(T==NULL)
- return 0;
- else{
- int *punt2 = punt;
- (*(punt+k))++;
- printf("k vale: %d punt vale %d e punt[k] vale %d\n", k, *punt, punt[k]);
- k++;
- Larghezza_AlberoRic(punt, T->sx,k);
- Larghezza_AlberoRic(punt2, T->dx,k);
- return 0;
- }
- }
- int larghezza_albero(albero T){
- if(!T){
- return 0;
- }
- int contenitore[Height(T)+1];
- contenitore[0] = 0; //ti devi sempre ricordare di inziializzare il puntatore.
- int *punt;
- punt = contenitore;
- Larghezza_AlberoRic(punt, T, 0);
- printf("punt vale: %d\n", *punt);
- return ValoreMax(punt, Height(T));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement