与えられたバイナリツリー、バイナリ・ソートの木かどうかを判断します
無効 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 " 、数)。 }