Вы находитесь на странице: 1из 6

Arbori

1.arbore binar ( parcurgere)


#include<iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std ;
struct nod{int nr;nod*st,*dr;}*rad,*aux,el;
void SRD(nod*element){
if(element!=NULL){
SRD(element->st);
cout<<element->nr<<" ";
SRD(element->dr);}}

int main()
{
rad=(nod*)malloc(sizeof(el));
cin>>rad->nr;
rad->st=NULL;
rad->dr=NULL;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->st=NULL;
aux->dr=NULL;
rad->st=aux;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->st=NULL;
aux->dr=NULL;
rad->dr=aux;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->st=NULL;
aux->dr=NULL;
rad->dr->st=aux;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->st=NULL;
aux->dr=NULL;
rad->dr->dr=aux;

SRD(rad);
getch();

2.Arbore de cautare

#include<iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std ;

struct nod{int nr;nod*st,*dr;}*rad,*aux,*aux2 ,el;


void SRD(nod*element){
if(element!=NULL){
SRD(element->st);
cout<<element->nr<<" ";
SRD(element->dr);}}
void RSD(nod*element){
if(element!=NULL){
cout<<element->nr<<" ";
RSD(element->st);
RSD(element->dr);}}

void SDR(nod*element){
if(element!=NULL){
SDR(element->st);
SDR(element->dr);
cout<<element->nr<<" ";}}

nod* cauta_poz(nod*element,int x){


if (x<element->nr)
if(element->st==NULL) return element;
else return cauta_poz(element->st,x);
else
if (element->dr==NULL) return element;
else return cauta_poz(element->dr,x);
}

void inserare(int x){


if(rad==NULL){
rad=(nod*)malloc(sizeof(el));
rad->nr=x;
rad->st=rad->dr=NULL;}

else {
aux2=cauta_poz(rad,x);
aux=(nod*)malloc(sizeof(el));
aux->nr=x;
aux->st=aux->dr=NULL;
if(aux->nr<aux2->nr)aux2->st=aux;
else aux2->dr=aux;}}

int main()
{
int i,x;
for(i=1;i<6;i++)
{
cin>>x;
inserare(x);
}
RSD(rad);
cout<<endl;
SRD(rad);
cout<<endl;
SDR(rad);
cout<<endl;
getch();
}

3.pargcurgere adancime

#include<iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std;
struct nod{int nr,nd;nod*desc[10];}*rad,*aux,el;
void parc_adancime(nod*element){
int i;
cout<<element->nr<<" ";
for(i=0;i<element->nd;i++)
parc_adancime(element->desc[i]);
}

void parc_latime(){
int poz=0,final=0,i;
nod*v[20];
v[0]=rad;
while(poz<=final){
for(i=0;i<v[poz]->nd;i++){
final++;
v[final]=v[poz]->desc[i];}
poz++;}
for(i=0;i<=final;i++)cout<<v[i]->nr<<" ";

int main (){


int i;

rad=(nod*)malloc(sizeof(el));
cin>>rad->nr;
rad->nd=0;
for(i=0;i<10;i++)
rad->desc[i]=NULL;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[0]=aux;
rad->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]=aux;;
rad->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[2]=aux;
rad->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]->desc[0]=aux;
rad->desc[1]->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]->desc[1]=aux;
rad->desc[1]->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]->desc[1]->desc[0]=aux;
rad->desc[1]->desc[1]->nd++;

parc_adancime(rad);
cout<<endl;
parc_latime();
getch();

4. parcurgere latime

#include<iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std;
struct nod{int nr,nd;nod*desc[10];}*rad,*aux,el;
void parc_adancime(nod*element){
int i;
cout<<element->nr<<" ";
for(i=0;i<element->nd;i++)
parc_adancime(element->desc[i]);
}

void parc_latime(){
int poz=0,final=0,i;
nod*v[20];
v[0]=rad;
while(poz<=final){
for(i=0;i<v[poz]->nd;i++){
final++;
v[final]=v[poz]->desc[i];}
poz++;}
for(i=0;i<=final;i++)cout<<v[i]->nr<<" ";

int main (){


int i;

rad=(nod*)malloc(sizeof(el));
cin>>rad->nr;
rad->nd=0;
for(i=0;i<10;i++)
rad->desc[i]=NULL;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[0]=aux;
rad->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]=aux;;
rad->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[2]=aux;
rad->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]->desc[0]=aux;
rad->desc[1]->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]->desc[1]=aux;
rad->desc[1]->nd++;

aux=(nod*)malloc(sizeof(el));
cin>>aux->nr;
aux->nd=0;
for(i=0;i<10;i++)
aux->desc[i]=NULL;
rad->desc[1]->desc[1]->desc[0]=aux;
rad->desc[1]->desc[1]->nd++;

parc_adancime(rad);
cout<<endl;
parc_latime();
getch();

Вам также может понравиться