- 1
- 0
- 约9.98千字
- 约 8页
- 2019-10-25 发布于湖北
- 举报
1、根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结
点值比较,即可得出结论,为此设全局指针变量pre (初值为null)和全局变量flag,初值
为true。若非二叉排序树,则置flag 为false。
#define true 1
#define false 0
typedef struct node
{datatype data; struct node *llink,*rlink;} *BTree;
void JudgeBST (BTree t,int flag)
// 判断二叉树是否是二叉排序树,本算法结束后,在调用程序中由flag 得出结论。
{ if (t!=null flag)
{ Judgebst (t-llink,flag);// 中序遍历左子树
if (pre==null)pre=t;// 中序遍历的第一个结点不必判断
else if (pre-datat-data)pre=t;//前驱指针指向当前结点
else{flag=flase;} //不是完全二叉树
Judgebst (t-rlink,flag);// 中序遍历右子树
}//JudgeBST 算法结束
2、请编写一个判别给定二叉
原创力文档

文档评论(0)