6-4 二叉树求深度和叶子数
来源:互联网 发布:婚纱照相册制作软件 编辑:程序博客网 时间:2024/05/17 04:57
编写函数计算二叉树的深度以及叶子节点数。二叉树采用二叉链表存储结构
函数接口定义:
int GetDepthOfBiTree ( BiTree T);int LeafCount(BiTree T);
其中 T是用户传入的参数,表示二叉树根节点的地址。函数须返回二叉树的深度(也称为高度)。
裁判测试程序样例:
//头文件包含#include<stdlib.h>#include<stdio.h>#include<malloc.h>//函数状态码定义#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1#define INFEASIBLE -2#define NULL 0typedef int Status;//二叉链表存储结构定义typedef int TElemType;typedef struct BiTNode{ TElemType data; struct BiTNode *lchild, *rchild; } BiTNode, *BiTree;//先序创建二叉树各结点Status CreateBiTree(BiTree &T){ TElemType e; scanf("%d",&e); if(e==0)T=NULL; else{ T=(BiTree)malloc(sizeof(BiTNode)); if(!T)exit(OVERFLOW); T->data=e; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } return OK; }//下面是需要实现的函数的声明int GetDepthOfBiTree ( BiTree T);int LeafCount(BiTree T);//下面是主函数int main(){ BiTree T; int depth, numberOfLeaves; CreateBiTree(T); depth= GetDepthOfBiTree(T); numberOfLeaves=LeafCount(T); printf("%d %d\n",depth,numberOfLeaves);}/* 请在这里填写答案 */
输入样例:
1 3 0 0 5 7 0 0 0
输出样例:
3 2
代码:
int GetDepthOfBiTree ( BiTree T) { if(T == NULL ) { return 0; } else { int lenl = GetDepthOfBiTree(T->lchild); int lenr = GetDepthOfBiTree(T->rchild); return lenl > lenr? lenl+1:lenr+1; }}int LeafCount(BiTree T) { if(T == NULL) return 0; else if(T->lchild == NULL && T->rchild == NULL) return 1; else { return LeafCount(T->lchild) + LeafCount(T->rchild); }}
阅读全文
0 0
- 6-4 二叉树求深度和叶子数
- 6-4 二叉树求深度和叶子数(20 分)
- 【算法导论】求二叉树的叶子数和深度
- 求二叉树的深度、宽度和叶子结点数
- 二叉树求深度和叶子数(20 分)
- PTA二叉树求深度和叶子数
- 输入二叉树,求父,左,右结点和深度,叶子数
- 二叉树的字符串创建和遍历,求深度,叶子节点数
- 二叉树求深度和宽度,叶子节点数,总结点数
- 二叉树求叶子数
- 二叉树的基本操作(创建、递归和非递归遍历、求深度、求叶子数)
- 二叉树的深度和叶子节点数
- 数据结构树求深度和叶子节点数
- 二叉树 (求叶子结点&深度)
- 二叉树(求深度、叶子结点)
- 树 递归 数叶子 求深度
- 求二叉树非叶子节点数
- 求二叉树的叶子结点数
- ubifs分区挂载及信息查看
- 吴恩达新公司招实习生:不限专业,但没学过我的Coursera课程我不要
- nslookup
- 指针变量
- 继承:在包bzu.aa中定义一个交通工具类(Vehicle):在包bzu.aa中定义一个汽车类(Car)继承交通工具类:在包bzu.bb中定义一个final的公交车类(Bus),继承汽车类,进行测试。
- 6-4 二叉树求深度和叶子数
- HTTP协议报文、工作原理及Java中的HTTP通信技术详解
- js笔记
- ionic的安装
- win7系统中使用anaconda安装tensorflow,keras
- 【python】Python速成(三) --高级特性
- UVa11437
- CDOJ 1321 区间DP 解题报告
- ETL的过程原理和数据仓库建设