动态规划算法

发布于 2024-12-14 21:54:22 字数 482 浏览 2 评论 0原文

二叉树 T 是半平衡的,如果对于 T 中的每个节点 m:

R(m)/2 <= L(m) <= 2*R(m),

其中 L(m) 是 T 中的节点数m 的左子树,R(m) 是 m 的右子树中的节点数。

(a) 写一个递推关系来统计N个半平衡二叉树的数量 节点。

(b) 提供用于计算 (a) 中的递推的动态规划算法。

我该如何为此建立递归关系?

以下情况是否合格?

if(node==NULL)
return;
if(given relation is true)
count++
else find for right tree;
     find for left tree;

我猜他问的更多的是递归关系,比如函数之类的。?

另外,我该如何使用动态规划来解决这个问题?我想如果我应用上面建议的代码片段,我不需要存储任何东西。

请帮忙。

A binary tree T is semi-balanced if for every node m in T:

R(m)/2 <= L(m) <= 2*R(m),

where L(m) is the number of nodes in the left-sub-tree of m and R(m) is the number of nodes in the right-sub-tree of m.

(a) Write a recurrence relation to count the number of semi-balanced binary trees with N
nodes.

(b) Provide a Dynamic Programming algorithm for computing the recurrence in (a).

How do i go about making the recurrence relation for this?

Does the following qualify?

if(node==NULL)
return;
if(given relation is true)
count++
else find for right tree;
     find for left tree;

I guess he is asking more of a recurrence relation like a function or something.?

Also how do i go about doing the problem using dynamic programming? I guess i dont need to store anything if i apply the above suggested code snippet.

Kindly help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡忘如思 2024-12-21 21:54:22

提示:C(n)为具有n个节点的半平衡树的数量。如果您知道 C(1)、C(2)、...、C(n) 的值,则可以轻松计算 C(n+1)取根节点,并根据规定的条件将剩余的n个节点划分为左子树和右子树。

子树中的节点数量可以从 n/32*n/3,因为这些值满足条件 R(n)/2 R(n)/2 R(n)/2 R(n)/2 R(n)/2 R(n)/2 = L(n) <= 2*R(n)

更新:

C(n) = 从 n/3 到 2n/3 L(n)*R(n) 的总和

Hint: Let C(n) be number of semi-balanced trees with n nodes. If you know values for C(1), C(2), ..., C(n) than it is easy to calculate C(n+1) by taking root node and dividing remaining n nodes into left and right sub-trees by condition stated.

Number of nodes in sub-trees can be from n/3 to 2*n/3, since these values satisfy condition R(n)/2 <= L(n) <= 2*R(n).

Update:

C(n) = sum from n/3 to 2n/3 L(n)*R(n)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文