首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【数据结构】C语言实现二叉树基本操作——二叉树层次遍历、深度结点数……

C语言实现二叉树基本操作 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中,咱们详细介绍了二叉树三种遍历算法以及算法递归与非递归之间转换。...在今天内容中我们将会继续介绍二叉树一些基本操作如二叉树层次遍历、二叉树深度二叉树结点总数、二叉树第K层结点数、二叉树叶结点数……以及如何通过C语言来实现这些基本操作。...二、二叉树深度 二叉树深度也就是二叉树高度同样也是二叉树最大层次。...l + 1 : r + 1;//返回左右子树深度最大值+1 } 可以看到当我们在二叉树深度时,我们将其拆分成了左子树深度和右子树深度,这种将问题拆分思路是算法中分治思想,目前我们先简单了解一下...今天全部内容到这里就结束了,如果大家喜欢博主内容,可以点赞、收藏加评论支持一下博主,当然也可以转发给身边需要朋友。在下一篇内容中,我们将会介绍如何通过C语言实现一棵二叉树,大家记得关注哦!!!

19110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    二叉树深度和宽度

    1 二叉树深度 题目: 输入一个二叉树根节点,该树深度。从根节点到叶子节点依次经过节点(含根、叶节点)形成树一条路径,最长路径长度包含节点数为为树深度,即二叉树节点层数。...对于任意一棵非空二叉树,有如下四种情况: (1)如果一颗树只有一个节点,它深度是1; (2)如果根节点只有左子树而没有右子树,那么二叉树深度应该是其左子树深度加1; (3)如果根节点只有右子树而没有左子树...,那么二叉树深度应该是其右树深度加1; (4)如果根节点既有左子树又有右子树,那么二叉树深度应该是其左右子树深度较大值加1; 实现代码: int treeDepth(BinaryTreeNode...nLeft+1:nRight+1; } 2 二叉树宽度 题目: 给定一颗二叉树二叉树宽度。 宽度定义: 二叉树宽度定义为具有最多结点数层中包含结点数。...[2]二叉树深度和宽度

    2.3K20

    C语言递归年龄

    要求用C语言编程实现。 解题思路:需要求第几个美女年龄,age函数就一共被调用几次,最后一次是main函数调用,其余是在age函数中调用。...年龄函数: int age(int temp)//自定义递归函数,参数temp类型是整型  {   int peple_Age;//定义变量    if(temp==1)//如果temp=1    {...; //提示语句    scanf("%d",&number);//键盘输入想知道第几个函数    people_Age=age(number);//调用age函数    printf("第%d个学生年龄是...:5 第5个学生年龄是18岁 -------------------------------- Process exited after 1.828 seconds with return value...递归调用重要性,在实际开发中用并不多,根据小林大学期间参加ACM和蓝桥杯经验来看竞赛中出现更多。 C语言 | 递归年龄 更多案例可以go公众号:C语言入门到精通

    3K2320

    C语言 | 完数

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例55:一个数如果恰好等于它因子之和,这个数就称为完数,C语言编程找出1000之内所有完数,并输出其因子。...解题思路:6因子为1,2,3,而6=1+2+3,因此6是“完数”,1不用判断,直接从2开始,因为1因子只有1 源代码演示: #include//头文件 int main()//主函数...:1 2 3 28因子为:1 2 4 7 14 496因子为:1 2 4 8 16 31 62 124 248 -------------------------------- Process exited

    3.4K108

    C语言100~200素数​

    例17:C语言编程实现输出100~200之间素数。 解题思路:这个问题算法很简单,在上一节基础上,只要在外层增加一个for循环作为限制100-200之间就可以了。...源代码演示: #include//头文件  #include//为了引入sqrt平方根函数  int main()//主函数  {   int number,i;//...=0)//如果余不等于0,则为素数      printf("%d\n",number);//输出素数     }    return 0;//函数返回值为0  } 编译运行结果如下: 101 103...有了上一节案例学习,相信读者对C语言实现素数,根据常识,偶数不是素数,所以不必对偶数进行判定,只对奇数进行判定就可以。所以循环变量每次增值2。...C语言100~200素数 更多案例可以go微信公众号:C语言入门到精通,作者:闫小林

    3.5K3228

    c语言递归组合数_c语言一维数组元素之和

    大家好,又见面了,我是你们朋友全栈君。...C语言递归实现数组求和 一.基本思想(分而治之): 基线条件: 显然最简单情况:数组只有一个数时,无需任何操作,直接返回其值即可; 所以基线条件为数组长度为1; 递归条件: 每一次加上数组最后一位并缩短数组长度以丢掉它...; 二.问题及解决 数组输入问题:怎么实现让自己输入自己想求得数组和,而不是只能固定数组。...解:利用c99变长数组,自己输入数组长度和具体数字;(缺陷:需要用户数自己数字长度,未解决) 递归条件中,每一次应该在上一次调用基础上减一,最好定义新变量,避免此问题; #include <stdio.h...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.8K20

    C语言递归n阶乘

    例30:C语言n!,要求用递归实现。...解题思路:本题和例29思想差不多,都是用递归来实现,读者可以回顾一下《C语言 | 递归年龄》 阶乘函数: int factorial(int number)//自定义阶乘函数  {   int temp...=factorial(number-1)*number;//否则这个数与前一个数相乘结果    }    return temp;//将temp返回到函数调用处  } 源代码演示: #include...=factorial(number-1)*number;//否则这个数与前一个数相乘结果    }    return temp;//将temp返回到函数调用处  } 编译运行结果如下: 输入要求阶乘数...留个问题给读者请思考,最大可以求几阶乘,为什么? C语言 | 递归n! 更多案例可以go公众号:C语言入门到精通

    7.9K2321

    C语言 | 字符串长度

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例78:C语言写一个函数,一个字符串长度,在main函数中输入字符串,并输出其长度,要求用指针。...解题思路:字符串长度,还要求用指针,读者首先应该想一下不用指针是否可以,字符串长度需要判断字符串结束标志。...C语言源代码演示: #include//头文件 int main()//主函数 { int sum_Length(char *point);//函数声明 int len;

    2.9K42

    C语言 | 字符串长度

    例78:C语言写一个函数,一个字符串长度,在main函数中输入字符串,并输出其长度,要求用指针。...解题思路:字符串长度,还要求用指针,读者首先应该想一下不用指针是否可以,字符串长度需要判断字符串结束标志。...C语言源代码演示: #include//头文件  int main()//主函数  {   int sum_Length(char *point);//函数声明    int len;...(char *point)//函数功能实现  {    int number=0;//定义整型变量    while(*point!...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 跟多案例可以go公众号:C语言入门到精通

    3.3K32

    C语言 | a+aa+...+aa..a

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例85:sum=a+aa+aaa+aaaa+aa...a值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。...解题思路:关键是计算出每一项值。...C语言源代码演示: #include//头文件 int main()//主函数 { int a,number,count=1;//定义整型变量 long int sum=

    1.2K52

    C语言练习之n阶乘

    前言 运用最近学习C语言知识,使用递归和非递归两种方法分别实现n阶乘(不考虑溢出问题) 一、原理及思路 原理: n阶乘 n!...f(2)-->2*f(1)                                                         f(1)=1 将f(1)值回代到上一步,以此回推,最终就能得到原式结果...:>"); scanf("%d", &input); printf("这个数阶乘为%d\n", Fct(input)); return 0; } 运行截图: ---- 总结 以上就是今天要讲内容...,本文简单介绍了用C语言循环和递归两种思路实现n阶乘求解,还进一步展示了代码运行结果验证了作者思路。...本文作者也只是一个正在学习C语言等编程知识萌新,若这篇文章中有哪些不正确内容,请在评论区向作者指出(也可以私信作者),欢迎大佬们指点,也欢迎其他正在学习C语言萌新和作者进行交流。

    88920
    领券