当前位置: 首页 > news >正文

数据结构-二叉树的遍历及相关应用

1、定义二叉树结点结构

2、编写主程序

3、三种方法遍历二叉树,并实现求树的深度,叶子数,某一层的结点数

4、实现代码(带交互界面)

#include<iostream>
using namespace std;
typedef struct BiTNode
{char data;struct BiTNode* lchild, * rchild;
}BiTNode, * BitTree;BitTree creatTree()
{BitTree T = NULL;char ch;cin >> ch;if (ch == '#'){T = NULL;return T;}else{T = new BiTNode;if (T == NULL)return NULL;T->data = ch;T->lchild = NULL;T->rchild = NULL;T->lchild = creatTree();T->rchild = creatTree();return T;}
}
void Zhongxu(BitTree T)
{if (T){Zhongxu(T->lchild);cout << T->data;Zhongxu(T->rchild);}
}
void Xianxu(BitTree T)
{if (T){cout << T->data;Xianxu(T->lchild);Xianxu(T->rchild);}
}
void Houxu(BitTree T)
{if (T){Houxu(T->lchild);Houxu(T->rchild);cout << T->data;}
}
void printmenu()
{cout << "欢迎使用二叉树遍历及相关应用工具\n";cout << "请输入功能选项(1-3):\n";cout << "\t1.创建二叉树\n";cout << "\t2.遍历二叉树\n";cout << "\t3.打印二叉树深度\n";cout << "\t4.打印二叉树叶子个数\n";cout << "\t5.打印二叉树第n层结点个数\n";cout << "\t0.退出\n";
}
int TreeDepth(BitTree T)
{if (T == NULL)return 0;elsereturn (TreeDepth(T->lchild) > TreeDepth(T->rchild) ? TreeDepth(T->lchild) : TreeDepth(T->rchild)) + 1;   //选择左孩子和右孩子中较大的深度,然后加上一个根结点
}
int LeafCount(BitTree T)
{if (T == NULL)return 0;else{if (T->lchild == NULL && T->rchild == NULL)   //如果递归到叶子,计数+1return 1;elsereturn LeafCount(T->lchild) + LeafCount(T->rchild);   //递归到叶子}
}
int NodeCount(BitTree T,int n)
{if (T == NULL)return 0;if (n == 1)  //如果到第n层,返回1return 1;return NodeCount(T->lchild, n - 1) + NodeCount(T->rchild, n - 1); //递归到第n层}int main()
{BitTree T = NULL;int choose;int method;choose = -1;while (choose != 0) {printmenu();cin >> choose;switch (choose) {case 1:cout << "创建你的二叉树吧,用#表示空指针:\n";T = creatTree();cout << "二叉树创建成功\n";break;case 2: {method = -1;while (method != 0){cout << "\t1.先序遍历\n";cout << "\t2.中序遍历\n";cout << "\t3.后序遍历\n";cout << "\t0.返回上一级\n";cout << "请输入功能选项(0-3)";cin >> method;switch (method){case 1:Xianxu(T); break;case 2:Zhongxu(T); break;case 3:Houxu(T); break;case 0:method = 0; break;}}printmenu();break;}case 3:cout << "该二叉树的深度是:" << TreeDepth(T)<<"\n"; break;case 4:cout << "该二叉树的叶子数是:" << LeafCount(T)<<"\n"; break;case 5:int n;cout << "请输入你要查询的层数:";cin >> n;cout << "该层共有" << NodeCount(T, n) << "个结点\n";break;case 0:cout << "感谢使用,欢迎多提宝贵意见!\n" << endl;return 0;}}}

相关文章:

数据结构-二叉树的遍历及相关应用

1、定义二叉树结点结构 2、编写主程序 3、三种方法遍历二叉树&#xff0c;并实现求树的深度&#xff0c;叶子数&#xff0c;某一层的结点数 4、实现代码&#xff08;带交互界面&#xff09; #include<iostream> using namespace std; typedef struct BiTNode {char d…...

机器人入门(五)—— 仿真环境中操作TurtleBot

仿真环境中操作TurtleBot 一、实操1.1 查看姿态信息1.2 控制turtlebot移动的三种方式1.2.1 命令行发布指令1.2.2 键盘操控1.2.3 Python脚本控制1.2.4 使用rqt工具界面&#xff0c;发布运动指令 二、里程计(odometry)TurtleBot3 仿真 进行实操之前&#xff0c;先准备环境 $ sud…...

G2406C是一款高效的直流-直流降压开关稳压器,能够提供高达1A输出电流。

G2406C 1.5MHz&#xff0c;1A高效降压DC-DC转换器 概述: G2406C是一款高效的直流-直流降压开关稳压器&#xff0c;能够提供高达1A输出电流。G2406C在2.7V至5.5V的宽范围输入电压下工作&#xff0c;使IC是低压电源转换的理想选择。在1.5MHz的固定频率下运行允许使用具有小电感…...

HTB——常见端口及协议总结

文章目录 一、 常见端口二、HTTP协议三、FTP四、SMB 一、 常见端口 http协议&#xff1a;80、8000https协议&#xff1a;443、8443ftp协议&#xff1a;20&#xff08;数据传输&#xff09;、21&#xff08;发送命令&#xff09;smb协议&#xff1a;445 二、HTTP协议 https的…...

Spring Boot中处理简单的事务

说到事务&#xff0c;我们第一影响应该是数据库管理系统的一个重要概念。 事务&#xff08;Transaction&#xff09;是数据库管理系统&#xff08;DBMS&#xff09;中的一个概念&#xff0c;用于管理对数据库的一组操作&#xff0c;这些操作要么全部成功执行&#xff0c;要么全…...

source activate my_env 和conda activate my_env 有什么区别

source activate my_env 和conda activate my_env 有什么区别 source activate 和 conda activate 是两个不同的命令&#xff0c;用于在Conda环境中激活特定的虚拟环境。它们的区别在于它们分别适用于不同版本的Conda。 source activate&#xff1a; source activate 是在Con…...

机器学习模型超参数优化最常用的5个工具包!

优化超参数始终是确保模型性能最佳的关键任务。通常&#xff0c;网格搜索、随机搜索和贝叶斯优化等技术是主要使用的方法。 今天分享几个常用于模型超参数优化的 Python 工具包&#xff0c;如下所示&#xff1a; scikit-learn&#xff1a;使用在指定参数值上进行的网格搜索或…...

出口美国操作要点汇总│走美国海运拼箱的注意事项│箱讯科技

01服务标准 美国的货物需要细致的服务&#xff0c;货物到港后的服务也是非常重要的。如果在货物到港15天内&#xff0c;如果没有报关行进行(PROCEED)&#xff0c;货物就会进入了G.O.仓库&#xff0c;G.O.仓库的收费标准是非常高的。 02代理资格审核 美国航线除了各家船公司&a…...

Gateway网关

Gateway网关 1、网关的位置与作用 官网&#xff1a;Spring Cloud Gateway Geteway是Zuul的替代&#xff0c; Zuul&#xff1a;路由和过滤Zuul最终还是会注册到Eureka Zuul网关采用同步阻塞模式不符合要求。 Spring Cloud Gateway基于Webflux&#xff0c;比较完美地支持异步…...

Python Opencv实践 - 车牌定位(纯练手,存在失败场景,可以继续优化)

使用传统的计算机视觉方法定位图像中的车牌&#xff0c;参考了部分网上的文章&#xff0c;实际定位效果对于我目前使用的网上的图片来说还可以。实测发现对于车身本身是蓝色、或是车牌本身上方有明显边缘的情况这类图片定位效果较差。纯练手项目&#xff0c;仅供参考。代码中im…...

U盘插在电脑上显示要格式化磁盘怎么办

U盘是一种便携式存储设备&#xff0c;广泛应用于各种场合。然而&#xff0c;有时候我们可能会遇到一些问题&#xff0c;比如将U盘插入电脑后显示要格式化磁盘&#xff0c;这通常意味着U盘的分区出现了问题或者U盘的文件系统已经损坏。这种情况下&#xff0c;我们应该如何解决呢…...

Python使用腾讯云SDK实现对象存储(上传文件、创建桶)

文章目录 1. 开通服务2. 创建存储桶3. 手动上传文件并查看4. python上传文件4.1 找到sdk文档4.2 初始化代码4.3 region获取4.4 secret_id和secret_key获取4.5 上传对象代码4.6 python实现上传文件 5 python创建桶 首先来到腾讯云官网 https://cloud.tencent.com/1. 开通服务 来…...

Springboot整合Jedis实现单机版或哨兵版可切换配置

Springboot整合Jedis实现单机版或哨兵版可切换配置 前言实现最后 前言 前文写到借助redis实现Shiro实现session限制登录数量踢人下线&#xff0c;本文就写一下Jedis的配置&#xff0c;可切换单机版和集群哨兵版&#xff0c;方便开发测试。 实现 很简单&#xff0c;直接上代码&…...

lenovo联想小新 Air-14 2019 AMD平台API版(81NJ)原装出厂Windows10系统

下载链接&#xff1a;https://pan.baidu.com/s/1HCC66EH4UOcgofRx5_v1oA?pwdlgqw 提取码&#xff1a;lgqw 原厂系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xf…...

特殊矩阵的压缩存储(对称矩阵,三角矩阵,三对角矩阵,稀疏矩阵)

目录 1.数组的存储结构1.—维数组2.二维数组1.行优先存储2.列优先存储 2.特殊矩阵1.对称矩阵1.行优先存储 2.三角矩阵1.上三角矩阵2.下三角矩阵 3.三对角矩阵&#xff08;带状矩阵&#xff09;4.稀疏矩阵 1.数组的存储结构 1.—维数组 各数组元素大小相同&#xff0c;且物理上…...

DDU框架学习之路

目录 MVVM对比 DDU 数据消费者UI 数据的转换者&#xff1a;Domain Layer 数据图生产者/提供者 DataLayer 遵循原理&#xff1a; 单一数据流&#xff1a; Android官方推荐架构&#xff1a;DDU MVVM对比 M&#xff1a;Model 网络层 用于获取远端数据 VM:ViewModel 中间转…...

进阶课6——基于Seq2Seq的开放域生成型聊天机器人的设计和开发流程

情感聊天机器人通常属于开放领域&#xff0c;用户可以与机器人进行各种话题的互动。例如&#xff0c;微软小冰和早期的AnswerBus就是这种类型的聊天机器人。基于检索的开放领域聊天机器人需要大量的语料数据&#xff0c;其开发流程与基于任务型的聊天机器人相似&#xff0c;而基…...

Java面试题04

1.Array 和 ArrayList 有何区别&#xff1f; Array是固定长度的&#xff0c;元素类型可以是基本类型&#xff0c;创建后大小不可改变&#xff1b;ArrayList是可变长 度的&#xff0c;只能存储对象&#xff0c;可以动态添加和删除元素。 区别1&#xff1a; 存储类型不同 …...

海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

使用 Modbus TCP 通讯协议与视觉通讯&#xff0c;当地址为 0000 的保持型寄存器(4x 寄存器)变为 1 时&#xff0c;触发视觉流程执行一次&#xff0c;同时视觉将地址为 0000 的寄存器复位&#xff08;也即写为 0&#xff09;&#xff0c;视觉流程执行完成后&#xff0c;将结果数…...

assimp中如何判断矩阵是否是单位矩阵

对于一个矩阵元素为浮点型的矩阵&#xff0c;你是否还在使每个元素跟1.0f或0.0f进行比较&#xff0c;如果这样&#xff0c;只能说你的结果不一定正确&#xff0c;那我们看看assimp中是如何做的。 template <typename TReal> AI_FORCE_INLINE bool aiMatrix4x4t<TReal…...

解析Pandas 1.3.2版本的XML数据读取问题

在使用Pandas处理XML格式的数据时,经常会遇到数据类型不符合预期的情况,特别是在处理压缩的XML文件(如.xml.gz)时。让我们通过一个实际的例子来探讨如何解决Pandas 1.3.2版本中没有dtype参数的问题。 问题描述 假设我们有两个XML数据文件,每个文件包含多个<Data>元…...

毕业答辩PPT别再手动肝了!百考通AI十分钟自动生成高质量学术汇报稿

在经历了论文撰写、反复修改、查重降重的重重考验后&#xff0c;许多同学却在最后一道关卡——毕业答辩PPT的制作上&#xff0c;耗费了意想不到的巨大心力。你是否也曾面对空白的演示文稿绞尽脑汁&#xff1a;如何将数万字的论文浓缩成十几页幻灯片&#xff1f;怎样的排版才显得…...

ConvNeXt 系列改进:位置信息补全:ConvNeXt 结合 CoordAtt(坐标注意力),提升密集预测任务表现

一、写在前面:ConvNeXt 的“阿喀琉斯之踵” 2022年,Meta AI(FAIR)团队推出ConvNeXt,以纯卷积架构在ImageNet-1K上拿下87.8%的top-1准确率,在COCO目标检测和ADE20K语义分割任务上全面超越Swin Transformer,让整个社区重新认识到卷积网络的潜力。2023年,ConvNeXt V2更进…...

ThinkPHP5常见问题及解决方案

关于 THINKPHP 5 框架的答疑&#xff0c;请具体描述您遇到的问题&#xff08;例如&#xff1a;路由配置、模型操作、模板渲染、扩展机制等&#xff09;。以下常见方向供参考&#xff1a;路由问题自定义路由规则失效RESTful 接口配置冲突路由参数解析异常数据库操作模型关联查询…...

知识图谱化技术实体链接与知识推理的实现

知识图谱化技术&#xff1a;实体链接与知识推理的实现 在当今大数据时代&#xff0c;知识图谱作为结构化知识的重要载体&#xff0c;广泛应用于搜索引擎、智能问答和推荐系统等领域。其中&#xff0c;实体链接与知识推理是知识图谱构建与应用的核心技术。实体链接旨在将文本中…...

Houdini摄像机操作全攻略:从基础调节到Python脚本控制

Houdini摄像机操作全攻略&#xff1a;从基础调节到Python脚本控制 在影视特效和游戏开发领域&#xff0c;Houdini的摄像机系统是构建视觉叙事的关键工具。无论是制作震撼的爆炸场景&#xff0c;还是设计流畅的角色动画&#xff0c;精准的摄像机控制都能让作品更具专业质感。本文…...

PyTorch图像处理:别再用ZeroPad2d了,试试ReflectionPad2d让你的CNN效果更自然

PyTorch图像处理&#xff1a;用ReflectionPad2d替代ZeroPad2d实现更自然的CNN效果 在计算机视觉任务中&#xff0c;卷积神经网络(CNN)的性能往往取决于那些容易被忽视的细节处理。就像画家作画时对画布边缘的处理会直接影响整体观感一样&#xff0c;神经网络对图像边界的填充方…...

【编译原理实战】语法制导翻译:从SDD/SDT理论到抽象语法树构建

1. 语法制导翻译&#xff1a;编译器背后的隐形推手 第一次接触语法制导翻译&#xff08;Syntax-Directed Translation&#xff09;时&#xff0c;我正试图给自制的脚本语言添加类型检查功能。当时手动维护符号表的痛苦经历让我意识到&#xff1a;需要一套系统化的方法将语法结构…...

FPGA新手避坑指南:Vivado MIG IP核配置DDR4时,这5个参数千万别乱动

FPGA开发实战&#xff1a;Vivado MIG IP核配置DDR4的10个关键参数解析 第一次打开Vivado的MIG IP核配置向导时&#xff0c;面对密密麻麻的参数选项&#xff0c;大多数FPGA工程师都会感到头皮发麻。特别是当项目进度紧迫&#xff0c;而DDR4接口又迟迟无法正常工作时&#xff0c;…...

2026年4月19日60秒读懂世界:从学位扩容到人形机器人夺冠,今天最值得关注的6个信号

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...