将一棵二叉树扩充为满二叉树
我只想到一个方法,先计算层数,然后递归往下补,但是感觉效率太低了,请问有没有好一点的方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我只想到一个方法,先计算层数,然后递归往下补,但是感觉效率太低了,请问有没有好一点的方法?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
楼主的意思是将二叉树的空节点也表示出来吗?比如说:
表示成
这样吗。
个人想法满二叉树可以用数组保存,那么楼主可以将数组将二叉树扩充为满二叉树
满二叉树最适合线性存储,所以不必拘泥于原先的存储方法。而且从线性结构恢复为链式结构也很容易。
建立一个大小足够的数组,或者一个可增长的数组,每个元素的初值都是空值。
把根节点存储在下标0的位置;若节点存储在了下标k的位置,那么其左孩子存储在2k+1的位置,右孩子存储在第2k+2的位置。