如果对您有用,点个赞,关注一下哦!毕竟像我这种不用付monyY的博主不多了,且行且珍惜吧!俺只想要数据【偷笑】
最大密度:二叉树节点数值的最大值
如果没有输出结果,一定是建树错误!!!!!!!
我设置输入的是字符型数据,比较的ASCII值。
输入:FBE###CE###
输出:F
树形:
核心代码:
int btDepth(BiTree t){
char q;
if (!t)
return 0;
int front=-1,rear=-1;
BiTree Q[100];
Q[++rear]=t;
q=t->data;
BiTree p;
while (front<rear){
p=Q[++front];
if (q<p->data)
q=p->data;
if (p->lchild)
Q[++rear]=p->lchild;
if (p->rchild)
Q[++rear]=p->rchild;
}
return q;
}
完整可运行代码:
#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){
char q;
if (!t)
return 0;
int front=-1,rear=-1;
BiTree Q[100];
Q[++rear]=t;
q=t->data;
BiTree p;
while (front<rear){
p=Q[++front];
if (q<p->data)
q=p->data;
if (p->lchild)
Q[++rear]=p->lchild;
if (p->rchild)
Q[++rear]=p->rchild;
}
return q;
}
int main() {
BiTree t;
createTree(t);
printf("%c", btDepth(t));
}