题目:以孩子兄弟链表为存储结构,请设计递归算法求树的高度

分析:如果只有根节点,那么高度为1,如果有左孩子,那么高度由左孩子的左子树和右子树决定,取其大者。

代码如下:

typedef struct node {char data;node *fch, *nsib;
}Tree;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>Tree *create(Tree *T) {//先序创建一颗二叉树char data;printf("请输入当前节点值:data=");scanf("%c", &data);getchar();if (data != '#') {T = (Tree *)malloc(sizeof(Tree));T->data = data;T->fch = NULL;T->nsib = NULL;T->fch = create(T->fch);T->nsib = create(T->nsib);}return T;
}
int getHigh(Tree *T,int high) {if (!T) {//空返回当前高度,这是递归的出口return high;}else {int lhigh = getHigh(T->fch,high+1);//记录左子树高度int rhigh = getHigh(T->nsib,high);//记录右兄弟的高度,注意这里high不能再加一ÿ

以孩子兄弟链表为存储结构,请设计递归算法求树的高度相关推荐

  1. 【数据结构】(森林)以孩子兄弟链表为存储结构,请设计递归算法求树的深度

    以孩子兄弟链表为存储结构,请设计递归算法求树的深度 算法思想:求树的深度采用递归的思想就是求每一个兄弟的深度最大值 int Height(CSTree bt){int hc,hs;if(bt==NUL ...

  2. 数据结构:(翻转二叉树) 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适

    题目 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适?(北京航空航天大学1999,北京工业大学2016) A. 前序 B. 中序 C. 后序 D. 层次 ...

  3. 创建孩子兄弟链表的树c语言,树的孩子兄弟链表实现

    树的孩子兄弟链表存储结构,采用两条链分别连接孩子和兄弟结点.其中,child指向该结点的第一个孩子结点,sibling指向该结点的下一个兄弟结点. public class Tree { privat ...

  4. 编程求以孩子兄弟表示法存储的森林的叶子结点数☆

    题目:编程求以孩子兄弟表示法存储的森林的叶子结点数 分析:我们可以试想一个节点它如果有左孩子,那么根据孩子兄弟表示法的规则,那它一定不是叶节点,相反如果没有左孩子,那么             它一定 ...

  5. 使用单链表数据结构存储结构化的学生信息

    使用单链表数据结构存储结构化的学生信息 一.题目描述 定义一个学生结构体,包含有:学号,姓名,成绩.输入N个学生的信息,并进行基本的链表操作.(更好的阅读体验,请在我的博客网站上阅读此文:使用单链表数 ...

  6. 【数据结构】求以孩子兄弟表示法存储的森林的叶子结点数,树高

    1.求叶子结点数 T的第一个孩子存在T->firstChild里,所以如果T连第一个孩子都没有,那肯定为叶子结点,也就是说T->firstChild==NULL. 所以说,以孩子兄弟表示法 ...

  7. 设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...

    (数据结构课程设计分类题目 线性表 顺序表: 1.设有一元素为整数的线性表L=(a1,a2,a3,-,an),存放在一维数组A[N]中,设计一个算法,以表中an作为参考元素,将该表分为左.右两部分,其 ...

  8. 已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和集合B的差集(近由在A中出现而不再B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。

    #include <iostream> using namespace std; //第四题 typedef struct Lnode {int data;struct Lnode *ne ...

  9. 西工大NOJ数据结构理论——013.以十字链表为存储结构实现矩阵相加(严5.27)

      我第一下拿到这个题目,第一反应就是先定义好数据结构,然后构建好十字链表基础操作的函数,也就是"创插遍历"这些操作.下面是我的定义和函数操作. typedef int ElemT ...

最新文章

  1. 且看电脑高手如何优雅的使用windows系统
  2. getconnectiontimeoutexception 网络问题排查_通俗解析居家宽带网络问题:光猫设备排查教程篇...
  3. “Razor” – a new view engine for ASP.NET
  4. laravel redis_如何将redis优化
  5. HTTP/3 原理实战
  6. html vue分页,Vue.js bootstrap前端实现分页和排序
  7. java开启新线程的三种方法
  8. 探索MicroPython(四)--传感器应用
  9. 保存MATLAB工作区的矩阵为TXT文件
  10. java 异常_23、Java异常分类
  11. 开源APP源代码、游戏源代码
  12. 百度文库无下载券无法下载解决办法
  13. 信捷XC系列PLC编程软件安装方法
  14. Python之OpenGL笔记(36):环境光下的棋盘球体
  15. oracle hcm cloud价格,Oracle HCM
  16. 30字的完美个人简历
  17. 波长与颜色的对应关系之python实现
  18. 全球及中国中线静脉插管行业研究及十四五规划分析报告
  19. 微信邮箱怎么弄怎么写?手机可以移动办公吗?
  20. 香橙派借助语音模块实现语音刷抖音

热门文章

  1. 小程序使用微信地址or小程序跳转设置页
  2. jQuery each、节点操作、动画演示、尺寸操作、扩展方法
  3. 事物注解方式: @Transactional
  4. java 多线程面试题
  5. mini_magick上传图片
  6. phpexcel导出后乱码或者是打不开文件必须修复的问题
  7. phpexcel常见问题的解决办法
  8. 用css实现星级评分效果
  9. 【Vue】全局过滤器和局部过滤器
  10. VS2013 int main(int argc, char** argv)参数传递