Estratto del documento

#include<iostream.h>

#include<stdio.h>

struct nodo{

int x;

nodo* sx;

nodo* dx;

};

class tree{

void deltree(nodo* &p);

void print(nodo* &p);

void insert(nodo* &p,int x);

void copia(nodo* p,nodo* &punt);

void add(nodo* &p,int x);

void visitaord(nodo* p);

void visitapostord(nodo* p);

void visitapreord(nodo* p);

public:

nodo* testa;

tree();

~tree();

tree(const tree &ob);

void inserisci(int x);

void visual();

void cancella();

void operator=(const tree &ob);

tree operator++();

tree operator+(int x);

void visita(int x);

friend int conta(nodo* p);

friend void contafoglie(tree &ob);

};

tree::tree()

{ testa=NULL;

}

tree::~tree()

{ if(!testa)

delete testa;

deltree(testa);

}

tree::tree(const tree &ob)

{ copia(ob.testa,testa);

}

void tree::copia(nodo* p,nodo* &punt)

{ if(p)

{ punt=new nodo;

punt->x=p->x;

copia(p->sx,punt->sx);

copia(p->dx,punt->dx);

}

else

punt=NULL;

}

void tree::inserisci(int x)

{ insert(testa,x);

}

void tree::insert(nodo* &p,int x)

{ if(!p)

{ p=new nodo;

p->x=x;

p->sx=NULL;

p->dx=NULL;

}

else

if(x<=p->x)

insert(p->sx,x);

else

insert(p->dx,x);

}

void tree::visual()

{ print(testa);

}

void tree::print(nodo* &p)

{ if(!p)

cout<<"\n L'albero e' vuoto";

else

{ print(p->sx);

print(p->dx);

cout<<p->x<<endl;

}

}

void tree::cancella()

{ deltree(testa);

testa=NULL;

}

void tree::deltree(nodo* &p)

{ if(p)

{ deltree(p->sx);

deltree(p->dx);

delete p;

}

}

void tree::operator=(const tree &ob)

{ deltree(testa);

copia(ob.testa,testa);

}

tree tree::operator++()

{ add(testa,1);

return *this;

}

void tree::add(nodo* &p,int x)

{ if(p)

{ p->x=p->x+x;

add(p->sx,x);

add(p->dx,x);

}

}

tree tree::operator+(int x)

{ tree temp;

copia(temp.testa,testa);

temp.inserisci(x);

return temp;

}

void tree::visita(int x)

{ if(x==1) visitaord(testa);

if(x==2) visitapostord(testa);

if(x==3) visitapreord(testa);

}

void tree::visitaord(nodo* p)

{ if(p)

{ visitaord(p->sx);

cout<<"\n l'elemento e': "<<p->x<<endl;

visitaord(p->dx);

}

}

void tree::visitapostord(nodo* p)

{ if(p)

{ visitapostord(p->sx);

}

Anteprima
Vedrai una selezione di 1 pagina su 5
Programma C++ - Albero versione 1 Pag. 1
1 su 5
Sintesi

Albero.

Semplice programmino in C++ che tratta gli alberi, in questo programma si può lavorare su un albero creandolo, modificandolo, stampando a video e tante altre funzioni.

D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi