Alberi Binari

/*
  Autore: Prof. Alessandro Barazzuol
  Data: Eserczio
  Copyright "© Alessandro Barazzuol
  Motore: Mingw porting di GCC
  Versione: Debug o Relase se finita
  
*/

#include<iostream>//I/O
#include<cstdlib> //nomi srand e rand
#include<ctime>//orologio di sistema

using namespace std;
struct albero
{
	int valore;
	albero *dx;
	albero *sx;
};

albero *ins(int n)
{
	static int val=0;
	albero *nuovo=new albero;
	if(n==0)
	return nullptr;
	else
	{
	   nuovo->valore=val++;
	   int q_sx=n/2;
	   int q_dx=n-n/2-1;
       nuovo->sx=ins(q_sx);
	   nuovo->dx=ins(q_dx);
	   return nuovo;
	}
	
}

void print(albero *radice, int l)
{
	if(radice)
	{
		
		for(int i=0;i<l;i++)
		cout<<"**";
		
		
		cout<<" "<<radice->valore<<endl;
		print(radice->sx,l+1);
		print(radice->dx,l+1);
		
	}
}

int main()
{

albero *radice=ins(12);
print(radice,0);
return 0;

}