c语言求二叉树最大深度,c语言求二叉树高度

本文目录一览:

C语言二叉树求其深度

建议楼主到这里看看,其实每一层都是有一个return函数,不知道楼主注意到了没有,其次,reutrn函数初始返回0, 接着有 return (mn?m:n)+1;也就是一个一个一层一层加上去,所以会返回,而最后返回的就是答案

C语言二叉树求最大值求指点?

问题出在max这个变量上。临时变量么有返回。可以将这个函数

int getmax(btnode*t,int max)

{

if(t!=NULL)

{

if(maxt-data)

          max=t-data;

      getmax(t-lchild,max);

getmax(t-rchild,max);

}

return max;

}

修改为:

int getmax(btnode *t, int* max)

{

    if(t != NULL)

    {

        if(*max  t-data)

            *max = t-data;

        getmax(t-lchild, max);

        getmax(t-rchild, max);

    }

    return *max;

}

另外,你要注意你的编码格式了。需要按照一定的格式来编写,这样可以让别人看的时候更清晰。

C语言 这个求二叉树深度的函数的思路是什么 麻烦详细一点

这是递归函数

很容易理解的

二叉树深度就是左右子树深度的最大者+1

可见图片的代码是错的

最后的if语句if(depleft)

应该改为if(depleftdepright)

才对

哪位大侠知道 求二叉树深度的类C语言算法? 谢谢

主方法调用RootFirst(root,0);即可,g_nMax

即为最终的树的深度。

int

g_nMax

=

0;

voild

RootFirst(TreeNode

*p,int

nLevel)

{

if

(null

==

p-left

null

==

p-right)

//当前为叶子节点

{

if

(g_nMax

nLevel)

{

g_nMax

=

nLevel;

return;

}

}

if(null

!=

p-left

)

{

RootFirst(p-left,nLevel+1);//遍历左子树

}

if(null

!=

p-right)

{

RootFirst(p-right,nLevel+1);//遍历右子树

}

}

C语言中,二叉树的深度指?怎样计算

二叉树中结点的最大层数称为二叉树的深度。计算:就是结点最大层数的个数,这还用计算,一看就知道。

C语言二叉树的深度指什么?怎么求?

从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根节点的深度为1。

解体思路:

1.如果根节点为空,则深度为0,返回0,递归的出口。

2.如果根节点不为空,那么深度至少为1,然后我们求他们左右子树的深度,

3.比较左右子树深度值,返回较大的那一个

4.通过递归调用

#includeiostream

#includestdlib.h

using namespace std;

struct BinaryTreeNode

{

    int m_nValue;

    BinaryTreeNode* m_pLeft;

    BinaryTreeNode* m_pRight;

};

//创建二叉树结点

BinaryTreeNode* CreateBinaryTreeNode(int value)

{

    BinaryTreeNode* pNode=new BinaryTreeNode();

    pNode-m_nValue=value;

    pNode-m_pLeft=NULL;

    pNode-m_pRight=NULL;

    return pNode;

}

//连接二叉树结点

void ConnectTreeNodes(BinaryTreeNode* pParent,BinaryTreeNode* pLeft,BinaryTreeNode* pRight)

{

    if(pParent!=NULL)

    {

        pParent-m_pLeft=pLeft;

        pParent-m_pRight=pRight;

    }

}

//求二叉树深度

int TreeDepth(BinaryTreeNode* pRoot)//计算二叉树深度

{

    if(pRoot==NULL)//如果pRoot为NULL,则深度为0,这也是递归的返回条件

        return 0;

    //如果pRoot不为NULL,那么深度至少为1,所以left和right=1

    int left=1;

    int right=1;

    left+=TreeDepth(pRoot-m_pLeft);//求出左子树的深度

    right+=TreeDepth(pRoot-m_pRight);//求出右子树深度

    return leftright?left:right;//返回深度较大的那一个

}

void main()

{

//            1

//         /      \

//        2        3

//       /\         \

//      4  5         6

//           /

//        7

    //创建树结点

    BinaryTreeNode* pNode1 = CreateBinaryTreeNode(1);

    BinaryTreeNode* pNode2 = CreateBinaryTreeNode(2);

    BinaryTreeNode* pNode3 = CreateBinaryTreeNode(3);

    BinaryTreeNode* pNode4 = CreateBinaryTreeNode(4);

    BinaryTreeNode* pNode5 = CreateBinaryTreeNode(5);

    BinaryTreeNode* pNode6 = CreateBinaryTreeNode(6);

    BinaryTreeNode* pNode7 = CreateBinaryTreeNode(7);

    //连接树结点

    ConnectTreeNodes(pNode1, pNode2, pNode3);

    ConnectTreeNodes(pNode2, pNode4, pNode5);

    ConnectTreeNodes(pNode3, NULL,   pNode6);

    ConnectTreeNodes(pNode5, pNode7,  NULL );

    int depth=TreeDepth(pNode1);

    coutdepthendl;

    system(“pause”);

}

出处:

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/239274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:15
下一篇 2024-12-12 12:15

相关推荐

  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • 深度查询宴会的文化起源

    深度查询宴会,是指通过对一种文化或主题的深度挖掘和探究,为参与者提供一次全方位的、深度体验式的文化品尝和交流活动。本文将从多个方面探讨深度查询宴会的文化起源。 一、宴会文化的起源 …

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python语言实现人名最多数统计

    本文将从几个方面详细介绍Python语言实现人名最多数统计的方法和应用。 一、Python实现人名最多数统计的基础 1、首先,我们需要了解Python语言的一些基础知识,如列表、字…

    编程 2025-04-28
  • Python作为中心语言,在编程中取代C语言的优势和挑战

    Python一直以其简单易懂的语法和高效的编码环境而著名。然而,它最近的发展趋势表明Python的使用范围已经从脚本语言扩展到了从Web应用到机器学习等广泛的开发领域。与此同时,C…

    编程 2025-04-28

发表回复

登录后才能评论