数据结构----二叉树叶子结点到根节点的高度计算

数据结构----二叉树叶子结点到根节点的高度计算

代码:

#include<stdio.h>
#include<stdlib.h>
typedef struct bstTree {int data;struct bstTree* lchild, *rchild;
}bstTree;
void createBSTTree(bstTree* & T, int data) {//创建二叉排序树bstTree *p = NULL;if (!T) {p = (bstTree*)malloc(sizeof(bstTree));p->data = data;p->lchild = p->rchild = NULL;T = p;return;}if (data < T->data) {//左子树插入createBSTTree(T->lchild, data);}else {//右子树插入createBSTTree(T->rchild, data);}
}
void prePrint(bstTree*  BSTTree) {//前序遍历二叉排序树if (BSTTree) {printf("%d ", BSTTree->data);prePrint(BSTTree->lchild);prePrint(BSTTree->rchild);}
}
void calLeafHeight(bstTree* T,int h) {//计算叶子结点到根节点的高度if (!T) {return;}if (T->lchild == NULL && T->rchild == NULL) {printf("%d叶子结点到根节点的高度为%d\n", T->data, h + 1);}else {calLeafHeight(T->lchild, h + 1);//左孩子calLeafHeight(T->rchild, h + 1);//右孩子}
}
int main() {bstTree* T = NULL;//一定要初始化为空树int count, data;printf("开始构造二叉排序树:\n输入二叉排序树结点的数目:");scanf_s("%d", &count);while (count--) {//构造二叉排序树printf("输入二叉排序树的第%d个结点:", count + 1);scanf_s("%d", &data);createBSTTree(T, data);}printf("前序遍历二叉排序树\n");prePrint(T);//前序遍历二叉排序树printf("\n");calLeafHeight(T, 0);printf("\n");system("pause");return 0;
}

测试截图:

请添加图片描述

时间复杂度O(logn),空间复杂度O(1)

如果存在什么问题,欢迎批评指正!谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx 带宽_前端工程师不可不知的Nginx知识

历史背景互联网的全球化导致了互联网的数据量快速增长&#xff0c;加上在本世纪初摩尔定律在单核 CPU 上的失效&#xff0c;CPU 朝着多核方向发展&#xff0c;而 Apache 显然并没有做好多核架构的准备&#xff0c;它的一个进程同一时间只能处理一个连接&#xff0c;处理完一个请…

网格路径最小数字和

给定一个包含非负整数的 m x n 网格&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 数据范围&#xff1a; n < 100,m < 100; 输入&#xff1a; 3 3 1 3 1 1 5 1 4 2 1 输出&a…

word List 19

word List 19 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

矩形法_字体设计 | 新手必学,超简单的矩形造字法!!

点击蓝字关注&#xff0c;创智助你长姿势作为一个刚刚踏入设计界的“萌新”来说&#xff0c;字体设计可能是除了版式设计之外最简单的功课了&#xff0c;那么今天教学内容就是最简单的字体设计&#xff1a;矩形造字法。矩形造字法是以软件中的“矩形工具”为基础&#xff0c;以…

NETCore Bootstrap Admin 通用后台管理权限 [1]: 前后台分离系统简介

前言从事软件开发这个行业现在已经有十几年了&#xff0c;项目无论大小权限认证、授权模块总是或多或少有功能需求的&#xff0c;这一块费时费力但是又存在于后台&#xff0c;使用最多的可能是运维人员所以处于出力不讨好的尴尬地位&#xff0c;每次有新的项目总是要耗费不少时…

不同路径 I

一个机器人位于一个 n * m 网格的左上角 &#xff08;起始点在下图中标记为“Start” &#xff09;。(n表示行&#xff0c;m表示列) 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为“Finish”&#xff09;。 问总共有多少条不同…

数据结构---前序和中序遍历的二叉树序列还原二叉树

数据结构—前序和中序遍历的二叉树序列还原二叉树 代码&#xff1a; #include<stdio.h> #include<stdlib.h> typedef struct bstTree {char data;struct bstTree* lchild, *rchild; }bstTree; bstTree * reStoreTree(char* pre, int preSt, int preEnd, char *mi…

c++ 位运算_C语言之运算符

运算符代表的是各种各样的运算(操作)已知的运算符&#xff1a; - * / (赋值)1.运算符的分类运算符的分类方法很多&#xff0c;通常用功能或者操作数个数进行分类功能&#xff1a;算数运算符 逻辑运算符 位运算符 地址运算符.......操作数个数&#xff1a;单目运算符 双目运算符…

微软 PowerBI 被评为商业智能领导者-13年的企业产品奋斗史解读

恭喜微软连续 13 年被Gartner评为BI平台领导者。您可以插上耳机&#xff0c;打开音乐来一起欣赏这个过程。原文地址&#xff1a;https://powerbi.microsoft.com/zh-cn/blog/microsoft-named-a-leader-in-gartners-2020-magic-quadrant-for-analytics-and-bi-platforms/被评为第…

word List20

word List20 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

[python交互]Excel催化剂与python交互原理剖析,py开发者按此规范可自行扩展功能...

只需简单地编写小段py脚本&#xff0c;就可以借助Excel催化剂的平台作用&#xff0c;将写出的py脚本&#xff0c;嫁接到Excel的环境上使用&#xff0c;在Excel的广阔用户群体上带来更多的产出价值。也大大增加了将自己的python技能输出到普通用户可享用的层面。按照本文的规范&…

background图片不显示_一种解决Retina屏幕1px边框显示问题的方案

一、背景介绍&#xff1a;Retina是一种新型高分辨率的显示标准&#xff0c;是把更多的像素点压缩至一块屏幕里&#xff0c;从而达到更高的分辨率并提高屏幕显示的细腻程度&#xff1b;同时CSS样式表中px单位是一个相对值&#xff0c;并不是绝对值&#xff0c;实际在Retina屏幕中…

gRPC in ASP.NET Core 3.x -- Protocol Buffer(3)更新消息类型

当你第一次定义Protocol Buffer的消息的时候&#xff0c;你肯定会给消息设定一套规则需求。但是随着时间的推进&#xff0c;你的业务可能会发生了变化&#xff0c;与此同时&#xff0c;你的Protocol Buffer消息类型的需求也会随之变化。也就是说&#xff1a;有一些字段可能会发…

opengl如何画出一个球_少儿美术绘画教程:毛线球

小朋友们&#xff0c;你们平时画画有没有遇到过没有灵感的时候&#xff0c;面对画纸却不知道画些什么呢&#xff1f;今天我们来介绍一种创意思维&#xff0c;叫发散性思维。以一个毛线球为出发点。通过毛线球&#xff0c;我们可以想到圆球&#xff0c;通过圆球我们可以想到圆形…

数据结构---后序和中序遍历的二叉树序列还原二叉树

数据结构—后序和中序遍历的二叉树序列还原二叉树 代码&#xff1a; #include<stdio.h> #include<stdlib.h> typedef struct bstTree {char data;struct bstTree* lchild, *rchild; }bstTree; bstTree * reStoreTree(char* pre, int preSt, int preEnd, char *mi…

Asp.Net Core 混合全球化与本地化支持

前言最近的新型冠状病毒流行让很多人主动在家隔离&#xff0c;希望疫情能快点消退。武汉加油&#xff0c;中国必胜&#xff01;Asp.Net Core 提供了内置的网站国际化&#xff08;全球化与本地化&#xff09;支持&#xff0c;微软还内置了基于 resx 资源字符串的国际化服务组件。…

最大连续子数组和 动态规划_剑指Offer算法题 33:连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢&#xf…

数据结构---顺序查找和二分查找

数据结构—顺序查找和二分查找 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> int n;//查找元素数组的长度 void seqCheckValue1(int* a) {//顺序查找1,有越界判断int v a[0];for (int i 1; i < n; i) {if(a[i…

git上托管的代码如何部署在阿里云上_居然仅用浏览器搞定Spring Boot应用的开发与部署...

最近有幸试用了一下阿里云的一个新产品&#xff1a;云开发平台&#xff0c;体验一把全新的开发模式&#xff01;虽然中间也碰到了一些问题&#xff0c;但整体的体验透露着未来感&#xff0c;因为整个过程都不需要使用我们最常用的IDEA&#xff0c;仅依靠浏览器就把一个Spring B…

Kubernetes 与 Helm:使用同一个 Chart 部署多个应用

k8s 集群搭建好了&#xff0c;准备将 docker swarm 上的应用都迁移到 k8s 上&#xff0c;但需要一个一个应用写 yaml 配置文件&#xff0c;不仅要编写 deployment.yaml 还要编写 service.yaml &#xff0c;而很多应用的配置是差不多的&#xff0c;这个繁琐工作让人有些望而却步…