二叉排序树BST+求树深度算法

二叉排序树BST+求树深度算法include stdio h include malloc h typedefstruc intkey structnode lchild rchild BSTNode BSTree voidInsertBS BSTree bst intkey BSTrees if bst NULL s

#include "stdio.h" #include "malloc.h" typedef struct node { int key; struct node *lchild, *rchild; }BSTNode, *BSTree; void InsertBST(BSTree *bst, int key) { BSTree s; if (*bst == NULL) { s = (BSTree)malloc(sizeof(BSTNode)); s->key = key; s->lchild = NULL; s->rchild = NULL; *bst = s; } else if (key<(*bst)->key) InsertBST(&((*bst)->lchild), key); else if (key > (*bst)->key) InsertBST(&((*bst)->rchild), key); } void CreateBST(BSTree *bst) { int key; *bst = NULL; scanf("%d",&key); while (key != 0) { InsertBST(bst, key); scanf("%d",&key); } } void inorder(BSTree bt) { if (bt != NULL) { inorder(bt->lchild); printf("%3d",bt->key); inorder(bt->rchild); } } int FindTreeDeep(BSTree BT){ int deep=0; if(BT){ int lchilddeep=FindTreeDeep(BT->lchild); int rchilddeep=FindTreeDeep(BT->rchild); deep=lchilddeep>=rchilddeep?lchilddeep+1:rchilddeep+1; } return deep; } int main() { BSTree bt; CreateBST(&bt); inorder(bt); printf("\n"); printf("%d\n",FindTreeDeep(bt)); getchar(); return 0; }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231031.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月2日 下午12:01
下一篇 2026年2月2日 下午12:22


相关推荐

  • 小白入门大模型教程,一文读懂大模型从训练到应用的完整流程!

    小白入门大模型教程,一文读懂大模型从训练到应用的完整流程!

    2026年3月13日
    1
  • python wpa_wpa_passphrase「建议收藏」

    python wpa_wpa_passphrase「建议收藏」辛苦历程之前一直用NetworkManager管理无线网络,后来换了fvwm以后,NetworkManager就不知道怎么用了,虽然查到有一个命令行版本的,客户端叫nmcli,但是无奈不知道怎么用,只好用wicd了,虽然也挺方便,但是占用的内存真是大——虽然只有16MB,但是相比它实现的功能,这个投入产出比已经非常低了。昨天因为某些搞笑原因,重装了系统,发现安装wicd还要安装一堆gnome和py…

    2025年6月24日
    4
  • 负载能力——影响负载能力思维导图整理

    我们在系统的开发和运维的时候,一定要了解自己现在系统的负载能力如何,这样在一些业务场景下,可以做到游刃有余,不会出现大的问题。下面就总结一些系统的负载能力,这个总结是我看到一篇好的博文内容整理出来的,我觉得很多知识可以用思维导图整理比较好一点,这样自己的思路清晰,而且对于记忆来说也比直接做笔记会深刻一点。

    2022年2月25日
    50
  • 常用端口号及服务

    常用端口号及服务端口号的范围是从 1 65535 分为 3 大类 1 公认端口 WellKnownPor 从 0 到 1023 它们紧密绑定于一些服务 通常这些端口的通讯明确表明了某种服务的协议 例如 80 端口实际上总是 HTTP 通讯 2 注册端口 RegisteredPo 从 1024 到 49151 它们松散地绑定于一些服务 但是这些端口同样用于许多其它目的 例如 许多系统处理动态端口从 1024 左右开始 3 动态和 或私有端口 Dynamicand orPrivatePor 从 49152 到 655

    2026年3月18日
    3
  • 我部署了 OpenClaw,然后它崩溃了:一个真实用户的踩坑记录

    我部署了 OpenClaw,然后它崩溃了:一个真实用户的踩坑记录

    2026年3月13日
    2
  • java strictfp 关键字_Java 关键字 strictfp

    java strictfp 关键字_Java 关键字 strictfp1 介绍自 Java2 以来 Java 语言增加了一个关键字 strictfp 即 strictfloatp 精确浮点 strictfp 关键字可应用于类 接口或方法 使用 strictfp 关键字声明一个方法时 该方法中所有的 float 和 double 表达式都严格遵守 FP strict 的限制 符合 IEEE 754 规范 当对一个类或接口使用 strictfp 关键字时 该类中的所有代码 包括

    2025年12月7日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号