将一棵二叉树扩充为满二叉树

发布于 2022-09-06 07:40:37 字数 52 浏览 8 评论 0

我只想到一个方法,先计算层数,然后递归往下补,但是感觉效率太低了,请问有没有好一点的方法?

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

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

发布评论

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

评论(2

花辞树 2022-09-13 07:40:37

楼主的意思是将二叉树的空节点也表示出来吗?比如说:

               1
              / \
                 3
                / \
               4   5

表示成

               1
             /   \
           nil    3
           / \   / \
          nilnil4  5
          

这样吗。
个人想法满二叉树可以用数组保存,那么楼主可以将数组将二叉树扩充为满二叉树

云醉月微眠 2022-09-13 07:40:37

满二叉树最适合线性存储,所以不必拘泥于原先的存储方法。而且从线性结构恢复为链式结构也很容易。
建立一个大小足够的数组,或者一个可增长的数组,每个元素的初值都是空值。
把根节点存储在下标0的位置;若节点存储在了下标k的位置,那么其左孩子存储在2k+1的位置,右孩子存储在第2k+2的位置。

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