#include using namespace std; class sumTree { int *P; int len; public: sumTree(int n) { P=new int[n+1]; for(int i=0;i<=n;i++) P[i]=-1; len=n; } ~sumTree() { delete [] P; } int getLen() { return len; } int getData(int i) { if(i<1||i>len) return -1; else return P[i]; } int setData(int data, int i) { if(i<1||i>len||data<0) return -1; return P[i]=data; } int makeSum(){ return do_makeSum(1); } int do_makeSum(int i) { int lsum, rsum; if (i>len) return 0; if (P[i]==-1) return 0; lsum=do_makeSum(2*i); rsum=do_makeSum(2*i+1); P[i]+=(lsum+rsum); return P[i]; } }; int main () { sumTree *T; int len; int data; cout <<"Taglia dell'albero: "; cin >> len; T=new sumTree(len); cout <<"Inserisci i dati: "<