二叉排序树操作

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);

 

以上是关于二叉排序树操作的主要内容,如果未能解决你的问题,请参考以下文章

二叉排序树的实现(c语言)

二叉排序树BST的定义及其增删改查操作(C语言)

(王道408考研数据结构)第五章树-第四节1:二叉树排序树(BST)及其操作

二叉排序树

Java 大话数据结构(11) 查找算法(二叉排序树/二叉搜索树)

二叉排序树操作