求二叉树的高度(可运行)

输入二叉树为:ABD##E##C##。

运行环境:main.cpp

运行结果:3

cpp 复制代码
#include "bits/stdc++.h"
using namespace std;
typedef struct BiTNode{
    char data;
    struct BiTNode *lchild,*rchild;
    int tag;
}BiTNode,*BiTree;

void createTree(BiTree  &t){
    char ch;
    ch=getchar();
    if (ch=='#') t=NULL;
    else{
        t=(BiTNode *) malloc(sizeof (BiTNode));
        t->data=ch;
        t->tag=0;
        t->lchild=NULL;
        t->rchild=NULL;
        createTree(t->lchild);
        createTree(t->rchild);
    }
}
int btDepth(BiTree t){
    if (!t)
        return 0;
    int front=-1,rear=-1;
    int last=0,level=0;
    BiTree Q[100];
    Q[++rear]=t;
    BiTree p;
    while (front<rear){
        p=Q[++front];
        if (p->lchild)
            Q[++rear]=p->lchild;
        if (p->rchild)
            Q[++rear]=p->rchild;
        if (front==last){
            level++;
            last=rear;
        }
    }
    return level;
}
int main() {
  BiTree t;
  createTree(t);
  printf("%d", btDepth(t));

}
相关推荐
m0_686041617 分钟前
C++中的适配器模式变体
开发语言·c++·算法
恒者走天下12 分钟前
cpp c++辅导星球价格调整
c++
rainbow68891 小时前
VSCode配置C/C++环境全攻略
c++
naruto_lnq1 小时前
C++中的桥接模式
开发语言·c++·算法
j445566111 小时前
C++中的职责链模式高级应用
开发语言·c++·算法
WarmSword1 小时前
mac上用cursor/vscode调试root权限进程
c++·ide·vscode·macos·mac
m0_736919102 小时前
模板元编程性能分析
开发语言·c++·算法
wbs_scy2 小时前
C++11:类新功能、lambda与包装器实战
开发语言·c++
永远睡不够的入2 小时前
类和对象(中)
c++
飞鹰512 小时前
深度学习算子CUDA优化实战:从GEMM到Transformer—Week4学习总结
c++·人工智能·深度学习·学习·transformer