当前位置:网站首页>6-11 Preorder output leaf nodes (15 points)
6-11 Preorder output leaf nodes (15 points)
2022-08-10 18:18:00 【jie3606】
本题要求按照先序遍历的顺序输出给定二叉树的叶结点.
函数接口定义:
void PreorderPrintLeaves( BinTree BT );
其中BinTree结构定义如下:
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结点,格式为一个空格跟着一个字符.
裁判测试程序样例:
#include <stdio.h>
#include <stdlib.h>
typedef char ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
BinTree CreatBinTree(); /* 实现细节忽略 */
void PreorderPrintLeaves( BinTree BT );
int main()
{
BinTree BT = CreatBinTree();
printf("Leaf nodes are:");
PreorderPrintLeaves(BT);
printf("\n");
return 0;
}
/* 你的代码将被嵌在这里 */
输出样例(对于图中给出的树):
Leaf nodes are: D E H I
解答
void PreorderPrintLeaves(BinTree BT){
if(BT == NULL) return;
if(BT->Left == NULL && BT->Right == NULL)
printf(" %c",BT->Data);
PreorderPrintLeaves(BT->Left);
PreorderPrintLeaves(BT->Right);
}
完整的代码
完整的代码
#include <stdio.h>
#include <stdlib.h>
typedef char ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
BinTree CreatBinTree(); /* 实现细节忽略 */
void PreorderPrintLeaves( BinTree BT );
int main()
{
BinTree BT = CreatBinTree();
printf("Leaf nodes are:");
PreorderPrintLeaves(BT);
printf("\n");
return 0;
}
BinTree CreatBinTree() {
ElementType dada;
scanf("%c",&dada);
if(dada =='-'){
return NULL;
}
BinTree root = (BinTree) malloc(sizeof (struct TNode));
root->Data = dada;
root->Left = CreatBinTree();
root->Right = CreatBinTree();
return root;
}
void PreorderPrintLeaves(BinTree BT){
if(BT == NULL) return;
if(BT->Left == NULL && BT->Right == NULL)
printf(" %c",BT->Data);
PreorderPrintLeaves(BT->Left);
PreorderPrintLeaves(BT->Right);
}
边栏推荐
- MySQL数据高级查询之连接查询、联合查询、子查询[通俗易懂]
- pip install fatal error C1083 cannot open include file "io.h" No such file or directory
- 关于奉加微PHY62xx系列如何选型?PHY6222/PHY6212/PHY6252
- Flexsim 发生器设置label和颜色
- 【严重】Nps 鉴权绕过 0day 漏洞
- Mysql索引、事务与存储引擎
- Toronto Research Chemicals 双(乙酰丙酮)铂(II)
- 兼具外观、性能、屏幕!华硕灵耀X 14火热抢购中
- Toronto Research Chemicals萜烯分析丨(+)-柠檬烯
- 三星Galaxy Watch5产品图片流出 非Pro表款亦有蓝宝石加持
猜你喜欢
随机推荐
FFmpeg 从mp4上提取H264的nalu
【图像分割】基于元胞自动机实现图像分割附matlab代码
Toronto Research Chemicals萜烯分析丨(+)-柠檬烯
不止跑路,拯救误操作rm -rf /*的小伙儿
R语言创建列表数据(list):根据名称索引列表元素、双方括号访问单个元素、单方括号访问子列表
R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、如果已知阶数则直接使用arima函数构建模型(order参数指定阶数)
Wuling Hongguang MINI EV, the only drawback is safety
微信小程序富文本标签rich-text
R语言使用ggpubr包的ggsummarystats函数可视化箱图(通过ggfunc参数设置)、在可视化图像的下方添加描述性统计结果表格、设置add参数为jitter添加抖动数据点
【图像分割】基于元胞自动机实现图像分割附matlab代码
Selenium - 如何操作下拉框、弹出框、滚动条?
【数据存储精讲】整型和浮点型有什么区别?为什么会精度丢失?
五菱宏光MINI EV,唯一的缺点就是安全性
D-Wave成功上市!量子计算商业化正在加速
WebRTC源码分析 nack详解
Toronto Research Chemicals萜烯分析丨反式植物醇
「NewSQL技术」Greenplum 6中的OLTP负载性能提升60倍以上
R语言patchwork包将多个可视化结果组合起来、plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义后缀信息(suffix)
机器人控制器编程实践指导书旧版-实践八 机器人综合设计
设置iptables规则来保护CS服务器








