//BinaryTree.h
/* 二叉树的二叉链表结点定义 */ typedef char datatype; typedef struct BiTNode { datatype data; struct BiTNode * LChild , * RChild ; } BiTNode , * BiTree ; //数叶子结点的数目 /* Author: WadeFelix RenV */ #include <stdio.h> #include <stdlib.h> #include "BinaryTree.h" int countLeaf( BiTree BT ) { if( BT == NULL ) return 0; if( BT->LChild==NULL && BT->RChild==NULL ) return 1; return(countLeaf(BT->LChild)+countLeaf(BT->RChild)); } //数非叶子结点的数目
int countNotLeaf( BiTree BT ) { if( BT == NULL ) return 0; if( BT->LChild==NULL && BT->RChild==NULL ) return 0; return(1+countNotLeaf(BT->LChild)+countNotLeaf(BT->RChild)); } //判断是否是排序二叉树 #include <stdio.h> #include <stdlib.h> #include "BinaryTree.h" int isPaiXu( BiTree BT ) { if( BT == NULL )return 1; if( BT->LChild && (BT->LChild->data > BT->data) )return 0; if( BT->RChild && (BT->RChild->data < BT->data) )return 0; return( isPaiXu(BT->LChild)&&isPaiXu(BT->RChild) ); } 
|