二叉排序树操作
Posted yshun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉排序树操作相关的知识,希望对你有一定的参考价值。
判断给定的二叉树是否是二叉排序树
void JudegBST(BSTree &T) Queue q; BSTree bst; int flag=1; q.front=-1; q.rear=-1; q.a[++q.rear]=T; while(q.front<q.rear) bst=q.a[++q.front]; if(bst->lchild) if(bst->lchild->data<=bst->data) q.a[++q.rear]=bst->lchild; elseflag=0;break; if(bst->rchild) if(bst->rchild->data>=bst->data) q.a[++q.rear]=bst->rchild; elseflag=0;break; if(flag==0)printf("不是二叉排序树\n"); elseprintf("是二叉排序树\n");
指定节点在二叉排序树中的层次
void BSTLevel(BSTree &T,ElemType key) int number=1; BSTree bst; bst=T; while(bst&&bst->data!=key) if(key<=bst->data) number=number+1; bst=bst->lchild; else number=number+1; bst=bst->rchild; printf("指定节点的层次:%d\n",number);
以上是关于二叉排序树操作的主要内容,如果未能解决你的问题,请参考以下文章
(王道408考研数据结构)第五章树-第四节1:二叉树排序树(BST)及其操作