13,825
社区成员
发帖
与我相关
我的任务
分享
int depth = 0; //遍历的层
int width[MAXDEPTH] = {0}; //存放各层宽度的数组
void TreeWidth(Tree t){
if (t == NULL) {
return;
}
if (depth == 0) {
width[0] = 1;
}
if (t->left != NULL) {
width[++depth] ++;
printf("往左子树,当前在第%d层,当前计算的宽度为%d\n",depth,width[depth]);
TreeWidth(t->left);
}
if (t->right != NULL) {
width[++depth] ++;
printf("往右子树,当前在第%d层,当前计算的宽度为%d\n",depth,width[depth]);
TreeWidth(t->right);
}
depth--;
printf("返回上一层,当前在第%d层,当前计算的宽度为%d\n",depth,width[depth]);
}