当前位置: 代码迷 >> 综合 >> 判断二叉树是否为二叉排序树
  详细解决方案

判断二叉树是否为二叉排序树

热度:90   发布时间:2024-02-10 09:30:38.0

二叉排序树要求:

根节点的数值必须大于等于左子树的结点数值,同时小于等于右子树的结点数值

采用层序遍历思想,对每个结点的左右子节点的数值进行判断

int JudgeBST(BiTree T){BiTNode *p = T;if(!T)    return 0;InitQueue(Q);EnQueue(Q,p);while(!isEmpty(Q)){DeQueue(Q,p);if(p->lchild){if(p->lchild->data > p->data){return false;}else{EnQueue(Q,p->lchild);}}else if(p->rchild){if(p->rchild->data < p->data){return false;}else{EnQueue(Q,p->rchild);}}}return true;
}