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

输入二叉树为: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));

}
相关推荐
我不是懒洋洋1 小时前
从零实现一个分布式监控:Prometheus的核心设计
c++
An_s1 小时前
c++对接pdfium(一)win系统篇
开发语言·c++
众少成多积小致巨1 小时前
C++ 规范参考(上)
c++
一拳一个呆瓜5 小时前
【STL】iostream 编程:使用提取运算符
c++·stl
我不是懒洋洋6 小时前
从零实现一个分布式日志平台:ELK的核心设计
c++
神仙别闹6 小时前
基于QT(C++)实现Windows 自启动项查看和分析
c++·windows·qt
WWTYYDS_6667 小时前
ProtoBuf超详细使用教程
c++
野生风长7 小时前
c++类和对象(this指针,重载operator,习题总结)
java·开发语言·c++
雪的季节7 小时前
Python「假多态」与 C++「真多态」的核心区别
开发语言·c++
zmzb01037 小时前
C++课后习题训练记录Day166
开发语言·c++