数据结构与算法题目集(中文) 6-8 求二叉树高度 (20分)

 1 // #include <stdio.h>
 2 // #include <stdlib.h>
 3 
 4 // typedef char ElementType;
 5 // typedef struct TNode *Position;
 6 // typedef Position BinTree;
 7 // struct TNode{
 8 //     ElementType Data;
 9 //     BinTree Left;
10 //     BinTree Right;
11 // };
12 
13 // int GetHeight( BinTree BT );
14 
15 int main()
16 {
17     BinTree BT = CreatBinTree();
18     printf("%d\n", GetHeight(BT));
19     return 0;
20 }
21 int GetHeight( BinTree BT )
22 {
23     int h = 0;
24     if (!BT)
25     {}
26     else if (BT && !BT->Left && !BT->Right)
27     {
28         h = 1;
29     }
30     else if (BT->Left&&!BT->Right)  
31     {
32         h = GetHeight(BT->Left) + 1;
33     }
34     else if (BT->Right&&!BT->Left)
35     {
36         h = GetHeight(BT->Right) + 1;
37     }
38     else
39     {
40         h = GetHeight (BT->Left) > GetHeight (BT->Right) ? GetHeight(BT->Left) + 1 : GetHeight(BT->Right) + 1;
41     }
42 
43     return h;
44 }

 

posted @ 2020-03-08 23:04  TATIT  阅读(358)  评论(0)    收藏  举报