バイナリソートツリーの動作(a)の

与えられたバイナリツリー、バイナリ・ソートの木かどうかを判断します

 

無効 JudegBST(BSTree&T){ 
    キューQを、
    BSTreeのBST; 
    int型フラグ= 1 
    q.front = - 1 
    q.rear = - 1 
    QA [ ++ q.rear] = T。
    一方、(q.front < q.rear){ 
        BST [++ = QA q.front]。
        もし(bst-> lchild){
             場合(bst-> lchild->データ<= bst-> データ){ 
                QA [ ++ q.rear] = bst-> lchild。
            } 
             {フラグ= 0ブレーク;} 
        } 
        IF(BST-> rchild){
             IF(BST-> rchild->データ> = BST-> データ){ 
                QA [ ++ q.rear] = BST-> rchild; 
            } 
            そうでなければ {フラグ=で0 ; BREAK ;} 
        } 
    } 
    IF(フラグに== 0){のprintf(" しないバイナリソートツリーの\ N- " );}
      {のprintf(" バイナリソートツリーの\ N- " );} 
}

 

バイナリ・ソート・ツリーのレベルを指定したノード

ボイド BSTLevel(BSTree&T、ElemTypeキー){
     int型の数= 1 
    BSTreeのBST; 
    BST = T。
    一方、(!BST && bst->データ= キー){
         場合(キー<= bst-> データ){  =数+ 1 
            BST = bst-> lchild。
        } 
        {  =数+ 1 
            BST = bst-> rchild。
        } 
    } 
    のprintf(" 指定节点的层次:%d個の\ n " 、数)。
}

 

おすすめ

転載: www.cnblogs.com/Yshun/p/11329529.html