• 二叉排序树的判定算法


    //函数功能:二叉排序树的判定算法 
    /*
        算法思想:根据二叉树的特点“其中序遍历序列为有序序列”,对二叉树进行中序遍历,
       
    同时检查当前结点与其中前驱关键字值的大小。
    */
    //中序遍历过程中判定给定的二叉树是否为二叉排序树,入是返会true,否则返回false 
    //pre指向中序前驱结点,初值为NULL 

     1 typedef struct treeNode
     2 {
     3     int data; //二叉排序树的元素类型为int
     4     struct treeNode *l,*r;
     5 }treeNode,*BiTree;
     6 
     7 /*
     8     中序遍历二叉树,root为根节点,pre初始值为null。
     9 
    10 */
    11 
    12 bool Is_BS_Tree(BiTree root,BiTree pre)
    13 {
    14      if(!root)
    15    {//空二叉树也是二叉排序树,所以返回true。
    16        return true;
    17      }
    18     if(Is_BS_Tree(root->l,pre))
    19     {//若左子树是二叉排序树。
    20         //是否为二叉排序树取决于前驱值和根节点值的大小。
    21            if((pre==null)||(pre->data<root->data))
    22            {
    23                 pre=root;
    24                 //再次判断右子树是否为二叉排序树。
    25                 return Is_BS_Tree(root->l,pre);
    26             }
    27       }
    28     //以上情况出现异常,则返回false。
    29     return false;
    30 }
  • 相关阅读:
    tar命令详解
    保存GNOME桌面环境中声卡的音量设置
    SyntaxError: NonASCII character ‘\xe5′ in file
    Python小练习采集天气预报
    Debian编译内核教程
    Debian软件包依赖关系图
    mysql unauthenticated user原因分析以及解决方法
    Struts2 配置
    Map基本操作
    Iterator迭代器
  • 原文地址:https://www.cnblogs.com/csdnmc/p/2834682.html
Copyright © 2020-2023  润新知