判斷排序樹和平衡樹

int predata=-32767;
int JudgeBST(BiTree T){
	int b1,b2;
	if(T==NULL)return 1;
	else{
		b1=JudgeBST(T->lchild);
		if(b1==0||predata>=T->data)return 0;
		predata=T->data;
		b2=JudgeBST(T->rchild);
		return b2;
	}
}

void JudgeAVL(BiTree T,int &blance,int &h){
	int b1,b2,h1,h2;
	if(T==NULL){
		h=0;
		blance=1;
	}else if(T->lchild==NULL&&T->rchild==NULL){
		h=1;
		blance=1;
	}else{
		JudgeAVL(T->lchild,b1,h1);
		JudgeAVL(T->rchild,b2,h2);
		h=(h1>h2?h1:h2)+1;
		if(abs(h1-h2)<2) balance=b1&&b2;
		else balance=0;
	}
}

 

發佈了55 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章