2016 - 2024

感恩一路有你

平衡二叉树的删除 如何删除一棵普通二叉树的叶子结点?

浏览量:2679 时间:2021-03-12 10:47:13 作者:admin

如何删除一棵普通二叉树的叶子结点?

首先要知道要删除的子节点的地址和父节点的地址。父节点的地址应该存储在树构建过程中。此时,二叉树的节点应该有三个指针:指向左子节点的指针、指向右子节点的指针和指向父节点的指针(定义结构时请注意)。找到父节点时,叶节点的地址用于确定该叶节点是父节点的左子节点还是右子节点。如果是左子节点,则父节点到左子节点的指针值设置为null,否则父节点到右子节点的指针值设置为null。然后我们可以释放要删除的叶节点。这是删除的基本思想。建议建立二叉树并用代码实现。

为什么删除二叉排序树中一个结点,再重新插入上去,不一定得到原来的二叉排序树?

二进制排序树只要求每个节点的左子级小于它,右子级大于或等于它。先看删除操作:“先将删除的节点与最后一个节点交换,交换后删除最后一个节点,然后重建二叉树”,在这个过程中,如果删除根节点左侧的节点,则在与最后一个节点交换后,为了保持二叉排序树的特性,最后一个节点会逐渐向上移动,这很可能会改变根节点的位置。然后让我们看看插入操作:“直接与根节点比较。如果小于根节点,插入左子树,递归一次,选择合适的节点,如果大于根节点,依此类推。所以平衡二叉树可能不同。我建议你画一幅图,试着操作一下,加深对这两种操作的理解!

平衡二叉树的删除 平衡二叉树删除节点 二叉树采用顺序存储结构

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。