试写一个判别给定二叉树是否为二叉排序树的算法。


试写一个判别给定二叉树是否为二叉排序树的算法。

正确答案:#define true 1 #define false 0 typedef struct node {datatype data; struct node *lchild,*rchild;} *BTree; void JudgeBST(BTree T,int flag) // 判断二叉树是否是二叉排序树,本算法结束后,在调用程序中由flag得出结论。 { if(T!=null &;&; flag) { Judgebst(T->lchild,flag);// 中序遍历左子树 if(pre==null)pre=T;// 中序遍历的第一个结点不必判断 else if(pre->datadata)pre=T;//前驱指针指向当前结点 else{flag=flase;} //不是完全二叉树 Judgebst (T->rchild,flag);// 中序遍历右子树 }//JudgeBST算法结束


Tag:数据结构 子树 遍历 时间:2024-01-19 16:04:28

相关答案

热门答案