树形结构--二叉树的遍历算法应用(十九)
时间:2022-07-28
本文章向大家介绍树形结构--二叉树的遍历算法应用(十九),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一.遍历算法应用
1.输出二叉树中的结点
void PreOrder(BiTree root)
{
if(root != NULL)
{
printf("%d",root->data); // 假设数据为int类型
PreOrder(root->RChild); // 遍历左子树
PreOrder(root->RChild); // 遍历右子树
//上例为先序遍历,中序遍历和后序遍历,只是printf()位置不同。
}
}
2.输出二叉树中的叶子结点
void PreOrder(BiTree root)
{
if(root != NULL)
{
if(root->LChild == NULL && root->RChild == NULL)
{
printf("%d",root->data);
}
PreOrder(root->LChild);
PreOrder(root->RChild);
}
}
3.统计叶子结点数目
int LeafCount = 0;
void leaf(BiTree root)
{
if(root != NULL)
{
leaf(root->LChild);
leaf(root->RChild);
if(root->LChild == NULL && root->RChild == NULL)
{
LeafCount++;
}
}
}
4.建立二叉链表方式存储的二叉树
void CreateBiTree(BiTree * bt)
{
char ch;
ch = getchar();
if(ch == '.')
{
*bt = NULL;
}
else
{
*bt = (BiTree)malloc(sizeof(BiTree));
(*bt)->data = ch;
CreateBiTree(&((*bt)->LChild));
CreateBiTree(&((*bt)->RChild));
}
}
5.求二叉树的高度
// 先序遍历求二叉树的高度
int PostTreeDepth(BiTree bt, int h)
{
if(bt != NULL)
{
if(h>depth)
{
depth = h;
}
PostTreeDepth(bt->LChild,h+1);
PostTreeDepth(bt->RChild,h+1);
}
}
// 后序遍历求二叉树的高度
int PostTreeDepth(BiTree bt)
{
int hl,hr,max;
if( bt != NULL)
{
hl = PostTreeDepth(bt->LChild);
hr = PostTreeDepth(bt->RChild);
max = hl>hr?hl:hr;
return max+1;
}
else return 0;
}
6.按树状打印二叉树
void PrintfTree(BiTree bt,int nLayer)
{
if(bt == NULL)return ;
PrintfTree(bt->RChild,nLayer+1);
for(int i = 0;i<nLayer;i++)
{
printf(" ");
}
printf("%cn",bt->data);
PrintfTree(bt->LChild,nLayer+1);
}
若有错误,欢迎指正批评,欢迎评论。 每文一句:欲戴王冠,必承其重。哪有什么好命天赐,不都是一路披荆斩棘才换来的。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法