二叉树遍历与二叉搜索树详解
1. 二叉树遍历函数分析
1.1 函数概述
以下是对几个作用于二叉树的函数的分析,在分析中,用 (n) 表示树的节点数,(h) 表示树的高度。我们会尽可能用大 (\Theta) 表达式来表示函数的执行时间,若无法做到,则找出最小和最大执行时间的大 (\Theta) 表达式。
1.2 具体函数及代码
1.2.1 销毁二叉树
void destroy (node_ptr &p)
{
if (p) // if p != NULL
{
destroy (p->left);
destroy (p->right);
delete (p);
// Deallocates the node pointed to by p.
p = NULL;
// Makes p NULL.
}
}
该函数会递归地删除二叉树中的所有节点,使树为空。
1.2.2 计算叶子节点数量
int number_of_leaves (node_ptr p)
{
if (!p)
// One base case: empty tree.
return 0;
else if (! p->left && ! p->right) // Another
超级会员免费看
订阅专栏 解锁全文
7565

被折叠的 条评论
为什么被折叠?



