1. 程式人生 > >【資料結構_樹_Tree_0982】利用二叉樹儲存普通樹的度

【資料結構_樹_Tree_0982】利用二叉樹儲存普通樹的度

Problem:資料結構中樹的度是什麼?

Answer:樹內各結點的度的最大值.(結點擁有的子樹數稱為結點的度).

一個元素的度是指其
孩子的個數;葉結點的度為0;一棵樹的度是其元素的度的最大值;

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int maxn=0;
typedef struct node
{
	char data;
	struct node *L_Kid,*R_Kid;
}Tree;
void initTree(Tree *&T)
{
	char str;
	cin>>str;
	if(str!='#')
	{
		T=(Tree *)malloc(sizeof(Tree));
		T->data=str;
		initTree(T->L_Kid);
		initTree(T->R_Kid);
	}
	else T=NULL;
}
void Traverse(Tree *&T,int n)
{
	if(T!=NULL)
	{
		Traverse(T->R_Kid,n+1);
		Traverse(T->L_Kid,1);
	}
	if(maxn<n) maxn=n;
}
int main()
{
	Tree *T;
	initTree(T);
	int n=0;
	if(T->R_Kid==NULL)
	{
		Traverse(T,n);
		cout<<maxn-1;
	}
	else cout<<"ERROR";
	return 0;
}