二叉树:设计判断二叉树是否为二叉排序树的算法。

二叉排序树的特点:左子树根结点值<根结点<右子树根结点值,并且中序遍历二叉排序树时,得到的序列是一个严格递增的序列。所以我们可以以此来判断二叉树是否为二叉排序树。
设置一个比所有结点值最小值还小的一个值,与结点从小到大做判断即可。如果最小值比判断的值大,则说明不是二叉排序树;如果最小值比判断的值小,则接着往下做判断,直到树的最后一个结点。如果是二叉排序树,则最小值应该是最左侧的值,只要比这个值小。

int minnum=-32768,flag=1;
typedef struct node
{
	int key; 
	struct node *lchild,*rchild;
}bitree;
void inorder(bitree *bt)
{
	if (bt!=0) 
	{
		inorder(bt->lchild); 
		if(minnum>bt->key)
			flag=0; 
		minnum=bt->key;
		inorder(bt->rchild);
	}
}

全部评论

相关推荐

10-17 23:18
已编辑
西北农林科技大学 Web前端
独行m:给25可以试试,但他只能给12,那就是纯纯的事精
秋招,不懂就问
点赞 评论 收藏
分享
10-22 15:25
门头沟学院 C++
种花网友小松:求求你别发了,我几乎都快嫉妒得疯了,倒在床上蒙住被子就开始抱着枕头尖叫流泪,嘴里一边喊着卧槽卧槽,一边又忍着,我边发边哭,打字的手都是抖的,后来我的手抖得越来越厉害,从心头涌起的思想、情怀和梦想,这份歆羡和悔恨交织在一起,我的笑还挂在脸上,可是眼泪一下子就掉下来了。求你了别发了,我生活再难再穷我都不会觉得难过,只有你们发这种东西的时候,我的心里像被刀割一样的痛,打着字泪水就忍不住的往下流。
我的求职进度条
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务