二叉搜索树

电脑杂谈  发布时间:2020-06-25 07:07:08  来源:网络整理

二叉树遍历算法的应用_二叉排序树查找 算法_二叉树遍历算法

注意: 所有问题的代码都是参考v_JULY_v或您自己编写的,答案中的分析就是您的想法.

1. 将二叉搜索树转换为排序的双向链表

标题:

输入二进制搜索树,然后将二进制搜索树转换为排序的双向链表.

二叉树遍历算法_二叉树遍历算法的应用_二叉排序树查找 算法

要求不能创建任何新节点,只能调整指针.

10

/ /

6 14

二叉排序树查找 算法_二叉树遍历算法_二叉树遍历算法的应用

/ / / /

4 8 12 16

转换为双向链接列表

4 = 6 = 8 = 10 = 12 = 14 = 16.

二叉树遍历算法_二叉树遍历算法的应用_二叉排序树查找 算法

首先,我们定义的二叉搜索树节点的数据结构如下:

struct BSTreeNode

{

int m_nValue; //节点的值

二叉树遍历算法_二叉树遍历算法的应用_二叉排序树查找 算法

BSTreeNode * m_pLeft; //节点的左子节点

BSTreeNode * m_pRight; //节点的右子节点

};

答案:

在此问题中,我们通过在每次访问当前树节点之前记录最后访问的节点来进行修改(因为该节点是循环列表中当前访问节点的前任节点),以修改二分搜索树的结构实现两个结构之间的转换.

在分析此问题期间二叉排序树查找 算法,我再次深刻理解了树遍历的顺序. 在预遍历过程中,由于当前访问的节点由其左,右子节点优先二叉排序树查找 算法,因此访问该节点时,无法修改左,右子树中的指针. 在中阶遍历过程中,由于在访问当前节点之前已访问了其左子树的所有节点,因此可以修改其左子树的结构,而不会影响树的正确中阶遍历行为,但这是仍然无法修改其右侧子树中节点的结构. 同样,在后遍历过程中,由于访问节点时已访问左右子树,因此修改左右子树的结构不会影响后续的树遍历行为.

代码:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-257642-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 毛宝卫
        毛宝卫

        这个鸟毛

        • 徐楠楠
          徐楠楠

          自己没理由把伊拉克打碎了还在干协别人站队

      热点图片
      拼命载入中...