统计二叉树中叶子结点数数据结构C语言,统计二叉树中叶子结点个数的问题,
#include
#include
typedef struct Node
{
int data;
struct Node *LChild;
struct Node *RChild;
}BiTNode,*BiTree;
int Leaf_Count=0; //******
//先序遍历创建二叉树
void CreateBiTree(BiTree *bt)
{
int ch;
scanf("%d",&ch);
if(ch==0)
*bt=NULL;
else
{
*bt=(BiTree)malloc(sizeof(BiTree));
(*bt)->data=ch;
CreateBiTree(&((*bt)->LChild));
CreateBiTree(&((*bt)->RChild));
}
}
//先序打印二叉树
void PreOrder(BiTree bt)
{
if(bt)
{
printf("%d ",bt->data);
PreOrder(bt->LChild);
PreOrder(bt->RChild);
}
}
//中序打印二叉树
void InOrder(BiTree bt)
{
if(bt)
{
InOrder(bt->LChild);
printf("%d ",bt->data);
InOrder(bt->RChild);
}
}
//后序打印二叉树
void PostOrder(BiTree bt)
{
if(bt)
{
PostOrder(bt->LChild);
PostOrder(bt->RChild);
printf("%d ",bt->data);
}
}
//先序输出二叉树的叶子结点
void Pre_Order(BiTree bt)
{
if(bt)
{
if(bt->LChild==NULL&&bt->RChild==NULL)
printf("%d ",bt->data);
Pre_Order(bt->LChild);
Pre_Order(bt->RChild);
}
}
//输出叶子结点数目
void LeafCount(BiTree bt)
{
if(bt)
{
LeafCount(bt->LChild);
LeafCount(bt->RChild);
if(bt->LChild==NULL&&bt->RChild==NULL)
Leaf_Count++;
}
}
//输出叶子结点数目
int Leaf(BiTree bt)
{
int Leaf_Count;
if(bt==NULL)
Leaf_Count=0;
else if(bt->LChild==NULL&&bt->RChild==NULL)
Leaf_Count=1;
else
return Leaf(bt->LChild)+Leaf(bt->RChild);
}
int main()
{
BiTree bt;
int Leaf_Count=0;
printf("先序序创建二叉树输入零结束输入\n");
CreateBiTree(&bt);
printf("先序打印二叉树\n");
PreOrder(bt);
printf("\n");
printf("中序打印二叉树\n");
InOrder(bt);
printf("\n");
printf("中序打印二叉树\n");
PostOrder(bt);
printf("\n");
printf("输出二叉树中的叶子结点\n");
Pre_Order(bt);
printf("\n");
printf("后序遍历输出叶子结点数目1.\n");
//Leaf_Count=0; //*******
LeafCount(bt);
printf("%d",Leaf_Count);
printf("\n");
printf("后序遍历输出叶子结点数目2.\n");
int num=Leaf(bt);
printf("%d",num);
return 0;
}
这样吗?
统计二叉树中叶子结点数数据结构C语言,统计二叉树中叶子结点个数的问题,相关推荐
- 设某棵二叉树中度数为 0 的结点数为 N0 ,度数为 1 的结点数为 N1 ,则该二叉树中度数为 2 的结点数为? ;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有 ? 个空指针域
度数为 2 的结点数为N0-1:有 2N0+N1个空指针域 分析: 根据总结点数=总度数+1,所以N0+N1+N2=0✘N0+1✘N1+2✘N2+1,得出N2=N0-1,度数为2的结点数就为N0-1 ...
- 【二叉树】大学有棵树叫高数,数据结构也有棵二叉树-代码详解
文章目录 二叉树 二叉树结构 快速构建一颗二叉树 前序遍历 中序遍历 后序遍历 层序遍历 注意点 计算二叉树结点个数 求叶子结点个数 求第K层结点个数 求二叉树的深度 查找值为x的结点 关于二叉树递归 ...
- 数据结构c语言版二叉树的顺序存储表示,数据结构(十一) -- C语言版 -- 树 - 二叉树基本概念...
内容预览 零.读前说明一.二叉树相关概念1.1.定义1.2.性质1.3.满二叉树与完全二叉树1.3.1.满二叉树1.3.2.完全二叉树1.3.3.特点延伸 二.二叉树储存结构2.1.顺序结构存储2.2 ...
- 【数据结构C语言】二叉树的遍历
//实验4 二叉树的遍历 上机实验 /*本实验函数包括1.先序遍历建立二叉树(有无返回值的函数)2.先序遍历递归算法3.中序遍历递归算法4.后序遍历递归算法5.计算深度6.计算结点个数,叶子结点数 7 ...
- 【C语言】数据结构C语言版 实验3 带头结点的单链表
slnklist.h #include <stdio.h> #include <stdlib.h> /************************************* ...
- 数据结构(C语言版)——二叉树的顺序存储结构(代码版)
一.代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math. ...
- c语言程序设计学习中的问题与对策,C语言程序设计学习中的问题与对策.pdf
C语言程序设计学习中的问题与对策 第 20 期 计 算 机 教 育 2010 年 10 月 25 日 Computer Education No.20 Oct.25,2010 83 文章编号:1672 ...
- python语言在abaqus中的应用 仿真秀_Python语言在Abaqus中的应用(18讲)-掌握Python编程实现ABAQUS高效仿真...
本课适合那些人学习: 1.理解有限元基本概念.熟悉Abaqus/CAE分析流程的工程师: 2.学习型仿真工程师 3.使用Abaqus软件进行有限元分析的工程师 4.高校教师.博(硕)士研究生 对学员的 ...
- C语言中求某课程最高分,C语言:统计全班某门功课的期末考试平均分和最高分,设全班有n人,并找出在这n个成绩中超过平均值的那些数...
满意答案 s4578731 2013.07.03 采纳率:48% 等级:11 已帮助:9006人 /* * =========================================== ...
最新文章
- 终于有人把云计算、物联网和大数据讲明白了!
- 揭秘大型网站架构进化之路
- 电脑台式计算机描述不可用,win7系统计算机描述不可用的解决方法
- Java并发编程——volatile
- java mcrypt encrypt_PHP mcrypt_encrypt加密,使用java解密
- 论如何入门地使用vscode
- Thinkphp中的 I 函数(Thinkphp3.2.3版本)
- npm ------ npm 安装删除命令(rimraf)删除本地依赖包
- leetcode每日一题·救生艇问题(Python)
- plop-template
- 小布老师讲座笔记(三)
- 硬阈值(Hard Thresholding)函数解读
- tile cannot extend outside image
- Redis集群--Cluster--故障转移的过程(原理)
- 研究生计算机学院换研究方向不换导师,南邮自杀研究生曾抱怨“导师不让毕业” 导师被停职...
- 人脉变现小程序裂变定制开发
- 一阶泰尔指数分解推导
- Latex常用宏包\usepackage
- winform生成桌面快捷方式
- oracle imp ora 00959,如何IMP存储在多TABLESPACE上的对象(IMP-00003 和 ORA-00959 问题的对应)...