ツリー:ツリーがツリーであるかどうかを判断するアルゴリズムを設計します.
2598 ワード
二叉ソートツリーの特徴:左サブツリーのルートノード値のシーケンスが二叉ソートツリーを巡る場合、得られるシーケンスは厳密に増加するシーケンスである.したがって、ツリーがツリーソートツリーであるかどうかを判断することができます.すべてのノード値の最小値よりも小さい値を設定し、ノードが小さいから大きいまで判断すればよい.最小値が判定値より大きい場合は、二叉ソートツリーではないことを示す.最小値が判断値より小さい場合は、ツリーの最後のノードまで判断を続けます.二叉ソートツリーの場合、最小値はこの値より小さい場合、最も左側の値である必要があります.
int minnum=-32768,flag=1;
typedef struct node
{
int key;
struct node *lchild,*rchild;
}bitree;
void inorder(bitree *bt)
{
if (bt!=0)
{
inorder(bt->lchild);
if(minnum>bt->key)
flag=0;
minnum=bt->key;
inorder(bt->rchild);
}
}