【发布时间】:2015-01-08 02:52:27
【问题描述】:
大家好,我刚开始在我的课程中学习二叉树,最近有人问我这个问题。由于我令人难以置信的糟糕实施和对问题的理解不足,我只是不知道如何解决这个问题。请帮帮我!!!
如果对于任何节点 u,则称具有 n 个节点的二叉树 T 是 h-balance 在 T 中,它的两个子树的高度之差最多为 h,其中 h >= 0 是一个整数。假设一棵空树的高度为-1。假设你有每个节点 三个字段:u.lc 指向 u 的左孩子,如果 u 没有左孩子,则 u.lc = NULL 孩子; u.rc 指向 u 的右孩子,如果 u 没有右孩子,则 u.rc = NULL; u.height 应设置为以 u 为根的树的高度。
(a) 给定指向树根的 r,用伪代码设计一个算法 (或 C/C++)在 u:height 中填充每个节点 u 的高度。
(b) 假设每个节点 u 的高度存储在 u.height 中,写一个算法 检查T是否是h平衡的。 (提示:修改(a)中设计的算法)
【问题讨论】:
标签: c++ c algorithm tree binary-tree