设计一个算法,判断给定的一棵二叉树是否是二叉排序树(二叉树的所有关键字均为正整数)

原创 2015年07月09日 17:12:42

思想:二叉排序树来说,其中序遍历序列为一个递增有序序列,因此,对给定的二叉树进行中序遍历,如果始终能保持前一个值比后一个值小,则说明该二叉树是一棵二叉排序树。算法如下:

KeyType predt=0;//predt为全局变量,保存当前节点中序前趋的值,初值为最小值

int judgeBST(BSTNode *bt)

{

//返回1表示是一颗二叉排序树,返回0表示不是

int b1,b2;

if(bt==NULL)

 return 1;

else

{

b1=judgeBST(bt->lchild);//判断左子树

if(b1==0||predt>=bt->key)

  return 0;

predt=bt->key;//保存当前节点的关键字

b2=judgeBST(bt->rchild);//判断右子树

return b2;

}

}

注意:若一个二叉树的中序序列是一个有序序列,则该二叉树一定是一棵二叉排序树。

版权声明:本文为博主原创文章,未经博主允许不得转载。

编写判断给定二叉树是否为二叉排序树的函数

#include "stdafx.h" #include #include using namespace std; struct Node { int element; Node *le...
  • wangyangkobe
  • wangyangkobe
  • 2011年09月17日 13:47
  • 3633

判断给定的二叉树是否为二叉排序树

思路:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。递归遍历就可以了,反正就是左孩子的k...
  • Hackbuteer1
  • Hackbuteer1
  • 2011年06月22日 19:10
  • 16922

判断二叉树是否为二叉排序树

#include #include typedef struct node { int data; struct node *lchild, *rchild; }Bitree; Bitr...
  • Tan_HandSome
  • Tan_HandSome
  • 2016年10月26日 23:08
  • 1575

判断一棵树是否为二叉排序树的两种方法

一、使用先根遍历,判断大小关系是否正确:t->lchild->valuevaluerchild->value转自:http://blog.pfan.cn/boxer/4814.htmlbool Jud...
  • zhongnanhai
  • zhongnanhai
  • 2009年10月15日 20:18
  • 8902

判别给定二叉树是否为二叉排序树

  • 2008年05月31日 22:42
  • 1KB
  • 下载

判断一颗二叉树是否为二叉排序树

int last_output=INT_MIN,flag=1; //************************************ // Method: MidT...
  • Manketon
  • Manketon
  • 2014年08月25日 16:20
  • 679

判断一棵二叉树是否是二叉排序树

判断一棵二叉树是否是二叉排序树,可以通过中序遍历来检查,为此要设置一个指针pr指示二叉树中当前结点的中序直接前驱,每访问一个结点,就比较当前访问结点的关键值是否大于ptr所指结点的关键字值,如果遍历了...
  • zengjianping007
  • zengjianping007
  • 2013年10月04日 16:04
  • 1629

判断二叉树是否平衡、是否完全二叉树、是否二叉排序树

//判断二叉树是否平衡 int isBalanced(Node* t) { if(t==NULL) return 1; int leftDepth = TreeDept...
  • luxiaoxun
  • luxiaoxun
  • 2012年05月05日 11:02
  • 1856

判断二叉树是不是二叉排序树

  • 2009年05月17日 19:52
  • 3KB
  • 下载

判断一棵二叉树是否是二叉排序树

分析:是否是二叉排序树,即看树的中序遍历是否为递增的即可 typedef struct node { ElemType data; struct node *lchild,*rchild; }B...
  • The_star_is_at
  • The_star_is_at
  • 2017年06月14日 21:03
  • 431
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计一个算法,判断给定的一棵二叉树是否是二叉排序树(二叉树的所有关键字均为正整数)
举报原因:
原因补充:

(最多只允许输入30个字)