arbore.cpp

来自「STRUCTURI DE DATE SI ALGORITMI」· C++ 代码 · 共 58 行

CPP
58
字号
#include<stdio.h>
#include<conio.h>
#include"ARBORE1.H"
int grad(Nod* x)
{
	int grmaxim,gr,i;
	if(x->grad==0) return 0;
	else{
		grmaxim=0;
		for(i=0;i<x->grad;i++){
			gr=grad(x->vDesc[i]);
			if(gr>grmaxim)
				grmaxim=gr;
			}
		if(grmaxim<x->grad) grmaxim=x->grad;
		return grmaxim;
	}
}
void afisterm(Nod* x)
{
	int i;
	if(x->grad==0) printf(" %d",x->data);
	else
		for(i=0;i<x->grad;i++)
			afisterm(x->vDesc[i]);
}
int evaluare(Nod* x)
{
	int y,i;
	int vt[GRMAX];
	if(x->grad==0) return x->data;
	else{
		for(i=0;i<x->grad;i++)
			vt[i]=evaluare(x->vDesc[i]);
		if(x->data=='+'){
			y=0;
			for(i=0;i<x->grad;i++)
				y=y+vt[i];
			return y;
			}
		y=1;
		for(i=0;i<x->grad;i++)
			y=y*vt[i];
		return y;
	}
}
void main()
{
	Nod* p;
	clrscr();
	printf("\nIntroduceti o expresie matematica:");
	p=creareArbore();
	printf("\ngradul arborelui=%d",grad(p));
	printf("\noperanzii:\n");
	afisterm(p);
	printf("\nvaloarea expresiei=%d",evaluare(p));
	getch();
}

⌨️ 快捷键说明

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