二叉排序树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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 常见贴片电容封装尺寸

    常见贴片电容封装尺寸贴片电容封装尺寸 毫米 英寸 封装 L 长度公制 毫米 英制 英寸 W 宽度公制 毫米 英制 英寸 t 端点公制 毫米 英制 英寸 02010 60 0 03 0 024 0 001 0 30 0 03 0 011

    2026年1月15日
    1
  • JAVA中的数组插入与删除指定元素

    JAVA中的数组插入与删除指定元素今天学了Java的数组,写了数组的插入和删除,本人小白,写给不会的小白看,大神请忽略,有错请大家指出来;/**给数组指定位置数组的插入*/importjava.util.*;publicclassArrayInsert{publicstaticvoidmain(String[]args){System.out.println(“请用键

    2022年6月26日
    61
  • Python如何生成可执行的.exe文件

    Python如何生成可执行的.exe文件为什么要生成可执行文件:不需要安装对应的编程环境可以将你的应用闭源用户可以方便、快捷的直接使用打包工具pyinstaller一.pyinstaller简介Python是一个脚本语言,被解释器解释执行。它的发布方式:.py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的).pyc文件…

    2022年5月25日
    24
  • Linux 查看环境变量_linux查看环境变量env

    Linux 查看环境变量_linux查看环境变量envLinux设置和查看环境变量   环境变量,简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。设置变量对于一般人最实用的功能就是:不用拷贝某些dll文件到系统目录中了,而path这一系统变量就是系统搜索dll文件的一系列路径。   在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“commandnotfound

    2022年10月1日
    4
  • widthStep、width

    widthStep、widthwidthStep表示存储一行像素需要的字节数。widthStep必须是4的倍数,如果8U图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空在那儿不用。也就是一个宽3高3的图像的imageData数据大小为4*3=12字节。转自:http://blog.sina.com.cn/s/blog_4b46937b0100

    2022年4月30日
    57
  • 不含重复字符的最长子串长度JAVA_字符串回文判断

    不含重复字符的最长子串长度JAVA_字符串回文判断给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 “010” 和 “1010” 属于交替字符串,但 “0100” 不是。任意两个字符都可以进行交换,不必相邻 。示例 1:输入:s = “111000”输出:1解释:交换位置 1 和 4:”111000″ -> “101010” ,字符串变为交替字符串。示例 2:输入:s =

    2022年8月9日
    10

发表回复

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

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