二叉树的基础代码:遍历+深度
2017-04-13 09:20
246 查看
求二叉树的深度(后序遍历)
int Depth (BiTree T ) // 返回二叉树的深度
{
if ( !T ) depthval = 0;
else{
depthLeft = Depth( T->lchild );
depthRight= Depth( T->rchild );
depthval = 1 + (depthLeft > depthRight ?depthLeft : depthRight);
}
return depthval;
}
遍历二叉树
void Preorder (BiTree T,void( *visit)(TElemType& e))
{ // 先序遍历二叉树
if (T) {
visit(T->data); // 访问结点
Preorder(T->lchild, visit); // 遍历左子树
Preorder(T->rchild, visit);// 遍历右子树
}
}
void Inorder (BiTree T,void( *visit)(TElemType& e))
{ // 中序遍历二叉树
if (T) {
Inreorder(T->lchild, visit); // 遍历左子树
visit(T->data); // 访问结点
Inreorder(T->rchild, visit); // 遍历右子树
}
}
void Postorder (BiTree T,void( *visit)(TElemType& e))
{ // 后序遍历二叉树
if (T) {
Postreorder(T->lchild, visit); // 遍历左子树
Postreorder(T->rchild, visit);// 遍历右子树
visit(T->data); // 访问结点
}
}
int Depth (BiTree T ) // 返回二叉树的深度
{
if ( !T ) depthval = 0;
else{
depthLeft = Depth( T->lchild );
depthRight= Depth( T->rchild );
depthval = 1 + (depthLeft > depthRight ?depthLeft : depthRight);
}
return depthval;
}
遍历二叉树
void Preorder (BiTree T,void( *visit)(TElemType& e))
{ // 先序遍历二叉树
if (T) {
visit(T->data); // 访问结点
Preorder(T->lchild, visit); // 遍历左子树
Preorder(T->rchild, visit);// 遍历右子树
}
}
void Inorder (BiTree T,void( *visit)(TElemType& e))
{ // 中序遍历二叉树
if (T) {
Inreorder(T->lchild, visit); // 遍历左子树
visit(T->data); // 访问结点
Inreorder(T->rchild, visit); // 遍历右子树
}
}
void Postorder (BiTree T,void( *visit)(TElemType& e))
{ // 后序遍历二叉树
if (T) {
Postreorder(T->lchild, visit); // 遍历左子树
Postreorder(T->rchild, visit);// 遍历右子树
visit(T->data); // 访问结点
}
}
相关文章推荐
- 数据结构--二叉树代码实现(建立,前序,中序,后续遍历,树的深度,销毁)
- 【基础备忘】二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 二叉树的基础(遍历、深度、二叉树相等、判断平衡二叉树)
- 二叉树的先序建立、遍历、镜像、节点数、深度的具体代码实现
- 二叉树的几个基础遍历算法代码
- 二叉树的基础应用(建树+叶子数+深度+遍历 )
- 二叉树的遍历与深度和节点数的计算代码实现
- Java基础 - 二叉树的遍历之深度优先遍历(非递归遍历)
- 图的存储及遍历 深度遍历和广度遍历 C++代码实现
- 二叉树的深度优先和广度优先遍历
- C#获取二叉树深度及分层遍历二叉树
- 【概念】【二叉树】深度优先遍历、广度优先遍历和非递归遍历
- 图的存储及遍历 深度遍历和广度遍历 C++代码实现
- 二叉树深度优先遍历的非递归算法
- 二叉树的插入,递归遍历和深度节点数
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 二叉树的深度优先和广度优先遍历
- 转载 二叉树的创建、遍历、深度、叶子节点数
- 二叉树的创建、遍历、深度、叶子节点数
- 第五讲 树-1(广度优先遍历二叉树&深度优先遍历二叉树)