⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sub19.cpp

📁 STRUCTURI DE DATE SI ALGORITMI
💻 CPP
字号:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define DIMMAX 100

int nr=0;
int tab[DIMMAX];

struct Nod
	{
	int data;
	Nod *stg,*drt;
	};

Nod* make_nod(int a);
void insert(Nod*& N,int a);
void preordine(Nod* N);
void nrnodpoz(Nod *N);
int niv(Nod *N);
void fa_tablou(Nod*,int=1);
void aftab(int n);


void main()
{
Nod *rad;
int n,x;
clrscr();
printf("\nIntrare :");
scanf("%d",&n);
rad=make_nod(n);
scanf("%d",&n);
while(n!=0)
	{
	insert(rad,n);
	scanf("%d",&n);
	}
printf("\nArborele reprezentat in preordine :");
preordine(rad);
nrnodpoz(rad);
printf("\nNr. nodurilor  : %d",nr);
int nivele=niv(rad);
printf("\nAdincimea : %d",nivele);
fa_tablou(rad,1);
printf("\nReprezentarea implicita :");
x=(int)pow(2,nivele);
aftab(x);
getch();
}

Nod* make_nod(int a)
{
Nod *N;
N=new Nod;
N->data=a;
N->stg=N->drt=0;
return(N);
}

void insert(Nod*& N,int a)
{
if(N==0)
	N=make_nod(a);
else
	if(a<N->data)
		insert(N->stg,a);
	else
		if(a>N->data)
			insert(N->drt,a);
}

void preordine(Nod* N)
{
if(N)
	{
	printf(" %d",N->data);
	preordine(N->stg);
	preordine(N->drt);
	}
}


void nrnodpoz(Nod *N)
{
if(N)
	{
	if(N->data>0)
		nr++;
	nrnodpoz(N->stg);
	nrnodpoz(N->drt);
	}
}

int niv(Nod *N)
{
if(N)
	return 1+((niv(N->stg)>niv(N->drt))?niv(N->stg):niv(N->drt));
return 0;
}


void fa_tablou(Nod* N,int poz)
{
if(N)
	{
	tab[poz]=N->data;
	fa_tablou(N->stg,2*poz);
	fa_tablou(N->drt,poz*2+1);
	}
}

void aftab(int n)
{
for(int i=1;i<n;i++)
	printf(" %d",tab[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -