m0_70121074 2022-11-08 16:54 采纳率: 0%
浏览 11

二叉树如何填写括号里边的?求解答

  1. 输人说明:输入第1行给出正整数N(N<=50),为树中结点总数。随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。
  2. 输出说明:输出为一个整数,即该二叉树的高度。

1 在代码框架中填入自己编写的代码完成要求的功能。
#include<stdio.h>
#include<stdlib.h>

#define MAXN 50

typedef struct TreeNode *BinTree;
struct TreeNode
{
char Data;
BinTree Left;
BinTree Right;
};

BinTree CreateBinTree( char *Pre, char In, int Len )
{ /
根据先序遍历序列和中序遍历序列构造二叉树 */
BinTree T;
int i;

if ( !Len ) return NULL; /* 递归终止 */

/* 建立当前根结点 */
T = malloc(sizeof(struct ??));
T->Data = Pre[??]; 
for (??; i<Len; i++) /* 在中序里找根结点 */
    if (Pre[0]==In[i]) break;
/* 递归生成左右子树 */
T->Left = CreateBinTree(Pre+1, In, i);
T->Right = CreateBinTree(??, ??, ??);

return T;

}

int Height( BinTree T )
{ /* 求树的高度 */
int THeight, LHeight, RHeight;

if( !T ) /* 递归终止条件 */
    THeight=0; 
else { /* 后序遍历 */
    LHeight = Height(??);
    RHeight = Height(??);
    THeight = (????)? LHeight : RHeight;
    THeight++; /* 树高为左右树高较大者加1 */
}
return THeight;

}

int main()
{
int N;
char Pre[MAXN+1], In[MAXN+1];
BinTree T = NULL;

scanf("%d", &N);
scanf("%s\n%s", Pre, In);
T = CreateBinTree(Pre, In, N);
printf("%d\n", Height(T));

return 0;

}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-08 18:48
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月8日

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突