数据结构NOJ——24二叉排序树的判别

数据结构NOJ——24二叉排序树的判别

#include<iostream>
using namespace std;
#define MAX 20

typedef struct BiNode{
	int data;
	struct BiNode* lchild, * rchild;
}BiNode,*BiTree;

//先序建立二叉树
void CreatTree(BiTree& T) {
	int ch; cin >> ch;
	if (ch == -1) T = NULL;
	else {
		if(!(T=(BiTree)malloc(sizeof(BiNode))))
			exit(-1);
		T->data = ch;
		CreatTree(T->lchild);
		CreatTree(T->rchild);
	}
}

void InOrderTranver(BiTree T,int Arry[]) {
	for (int i = 0; i <7 ; i++) {
		if (T) {
			InOrderTranver(T->lchild,Arry);
			Arry[i] = T->data;
			InOrderTranver(T->rchild,Arry);
		}
	}
}

//中序遍历二叉排序树可以得到递增的序列
void Judge(BiTree T,int Arry[]) {
	for (int i = 0; i <7 ; i++) {
		if (Arry[i] > Arry[i + 1]) 
			cout << "no"; 
		break;
	}
	cout << "yes";
}


void main() {
	BiTree T;
	CreatTree(T);
	int Arry[8];
	InOrderTranver(T,Arry);
	Judge(T,Arry);
}

上一篇:如何在Linux中永久修改USB设备权限


下一篇:冒泡排序~21.8.6