以孩子兄弟链表为存储结构,请设计递归算法求树的高度
题目:以孩子兄弟链表为存储结构,请设计递归算法求树的高度
分析:如果只有根节点,那么高度为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不能再加一ÿ
以孩子兄弟链表为存储结构,请设计递归算法求树的高度相关推荐
- 【数据结构】(森林)以孩子兄弟链表为存储结构,请设计递归算法求树的深度
以孩子兄弟链表为存储结构,请设计递归算法求树的深度 算法思想:求树的深度采用递归的思想就是求每一个兄弟的深度最大值 int Height(CSTree bt){int hc,hs;if(bt==NUL ...
- 数据结构:(翻转二叉树) 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适
题目 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适?(北京航空航天大学1999,北京工业大学2016) A. 前序 B. 中序 C. 后序 D. 层次 ...
- 创建孩子兄弟链表的树c语言,树的孩子兄弟链表实现
树的孩子兄弟链表存储结构,采用两条链分别连接孩子和兄弟结点.其中,child指向该结点的第一个孩子结点,sibling指向该结点的下一个兄弟结点. public class Tree { privat ...
- 编程求以孩子兄弟表示法存储的森林的叶子结点数☆
题目:编程求以孩子兄弟表示法存储的森林的叶子结点数 分析:我们可以试想一个节点它如果有左孩子,那么根据孩子兄弟表示法的规则,那它一定不是叶节点,相反如果没有左孩子,那么 它一定 ...
- 使用单链表数据结构存储结构化的学生信息
使用单链表数据结构存储结构化的学生信息 一.题目描述 定义一个学生结构体,包含有:学号,姓名,成绩.输入N个学生的信息,并进行基本的链表操作.(更好的阅读体验,请在我的博客网站上阅读此文:使用单链表数 ...
- 【数据结构】求以孩子兄弟表示法存储的森林的叶子结点数,树高
1.求叶子结点数 T的第一个孩子存在T->firstChild里,所以如果T连第一个孩子都没有,那肯定为叶子结点,也就是说T->firstChild==NULL. 所以说,以孩子兄弟表示法 ...
- 设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...
(数据结构课程设计分类题目 线性表 顺序表: 1.设有一元素为整数的线性表L=(a1,a2,a3,-,an),存放在一维数组A[N]中,设计一个算法,以表中an作为参考元素,将该表分为左.右两部分,其 ...
- 已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和集合B的差集(近由在A中出现而不再B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。
#include <iostream> using namespace std; //第四题 typedef struct Lnode {int data;struct Lnode *ne ...
- 西工大NOJ数据结构理论——013.以十字链表为存储结构实现矩阵相加(严5.27)
我第一下拿到这个题目,第一反应就是先定义好数据结构,然后构建好十字链表基础操作的函数,也就是"创插遍历"这些操作.下面是我的定义和函数操作. typedef int ElemT ...
最新文章
- 且看电脑高手如何优雅的使用windows系统
- getconnectiontimeoutexception 网络问题排查_通俗解析居家宽带网络问题:光猫设备排查教程篇...
- “Razor” – a new view engine for ASP.NET
- laravel redis_如何将redis优化
- HTTP/3 原理实战
- html vue分页,Vue.js bootstrap前端实现分页和排序
- java开启新线程的三种方法
- 探索MicroPython(四)--传感器应用
- 保存MATLAB工作区的矩阵为TXT文件
- java 异常_23、Java异常分类
- 开源APP源代码、游戏源代码
- 百度文库无下载券无法下载解决办法
- 信捷XC系列PLC编程软件安装方法
- Python之OpenGL笔记(36):环境光下的棋盘球体
- oracle hcm cloud价格,Oracle HCM
- 30字的完美个人简历
- 波长与颜色的对应关系之python实现
- 全球及中国中线静脉插管行业研究及十四五规划分析报告
- 微信邮箱怎么弄怎么写?手机可以移动办公吗?
- 香橙派借助语音模块实现语音刷抖音