请问二叉树的叶子节点数和深度分别用到什么遍历方法??

2025-01-04 06:35:26
推荐回答(3个)
回答1:

叶子结点用广度遍历,深度用深度遍历。至于你提到的遍历顺序,先 中 后都是可以的。计算叶子结点数可以制作一个计数器。给你提供个计算叶子结点数的简单算法,希望对你理解有帮助。
intleafNum(BiTree T)
{
if(!T) return (0);
if(!T->lchild&&!T->Tchild)
return (1);
return(LeafNum(T->lchild)+LeafNum(root->rchild));
}

回答2:

提出栈、队列、二叉树、图等数据结构的概念,
归根结底是为了能够更有效、方便的保存、管理数据,并提供接口访问其中的任意一个元素
这个访问数据结构内部所有组成元素的接口,我们就称之为该数据结构的遍历方法
由此可见,遍历方法目的是为了访问数据域
而计算叶子节点个数时,判断一个节点是不是叶子节点,数据域对象是什么是无关紧要的,关注的是指针域,
你且看看代码,计算叶子节点时,从来不会需要访问数据域的,
我猜你是混淆了遍历与递归的概念,计算二叉树的叶子节点数和深度是用不到任何的遍历方法的,你的代码只不过用了递归的方法进行计算而已,与遍历无关,二叉树由于其特殊的结构,递归算法必是操作二叉树的首选算法,试着多理解分而治之的算法,对你以后很有好处

回答3:

叶子节点数用广度遍历法,深度用深度遍历法