zoukankan      html  css  js  c++  java
  • 算法情景分析 二叉排序树 前驱+后缀 测试用列

    //查找中序遍历下x结点的后继,后继是大于key[x]的最小的结点  
    node *Tree_Successor(node *x)  
    {  
        //如果有右孩子  
        if(x->right != NULL)  
            //右子树中的最小值  
            return Tree_Minimum(x->right);  
        //如果x的右子树为空且x有后继y,那么y是x的最低祖先结点,且y的左儿子也是  
        node *y = x->p;  
        while(y != NULL && x == y->right)  
        {  
            x = y;  
            y = y->p;  
        }  
        return y;  
    }  
     
     
    //查找二叉查找树中节点x的前驱节点,返回指向该节点的指针 //在查找过程中,如果节点x左子树不为空,那么返回左子树的最大节点即可 //如果节点x的左子树为空,那么前驱节点为x的某一个祖先节点的父节点,而且该祖先节点是作为其父节点的右儿子 Tree tree_predecessor(Tree x) { if (x->left_child != null) return tree_maxmum(x->left_child); Tree y = x->parent;
    while (y != NULL && x == y->left_child) { x = y; y = y->parent; } return y; }

    360软件小助手截图20120818123211

    中序 前驱最容易情形之一:5寻前驱 4

    复杂情形之一:11寻前驱 10

    中序后继容易情形之一:5寻后继 6

    复杂情形之一:9寻前驱 10


     
     

  • 相关阅读:
    JQ选择器
    设计模式
    招银网络面试
    斗鱼面经
    招银科技面经
    用户访问网站基本流程
    shell的条件判断
    crontab -e 和/etc/crontab的区别
    秘钥对登录配置
    CentOS6 x86_64最小化安装优化脚本
  • 原文地址:https://www.cnblogs.com/titer1/p/2645317.html
Copyright © 2011-2022 走看看