求二叉樹的高度
本題要求給定二叉樹的高度。
函式介面定義:
int GetHeight( BinTree BT );
其中BinTree
結構定義如下:
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
要求函式返回給定二叉樹BT的高度值。
裁判測試程式樣例:
#include <stdio.h>
#include <stdlib.h>
typedef char ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
BinTree CreatBinTree(); /* 實現細節忽略 */
int GetHeight( BinTree BT );
int main()
{
BinTree BT = CreatBinTree();
printf("%d\n", GetHeight(BT));
return 0;
}
/* 你的程式碼將被嵌在這裡 */
輸出樣例(對於圖中給出的樹):
4
程式碼實現
int GetHeight( BinTree BT)
{
int m,n;
if(BT==NULL)
return 0;
else
{
m=GetHeight(BT->Left);
n=GetHeight(BT->Right);
if (m>n)
return(m+1);
else
return(n+1);
}
}
附一個簡單的:
int length(BT head)
{
if(head==NULL)return 0;
int l=length(head->left);
int r=length(head->right);
return l>r?l+1:r+1;
}
相關文章
- 二叉樹——高度二叉樹
- 建立一顆二叉樹,並求它的高度 7074二叉樹
- 二叉樹的最小高度,最大高度(深度)和寬度二叉樹
- 1501 二叉樹最大寬度和高度二叉樹
- 快速求完全二叉樹的節點個數二叉樹
- 建立二叉樹:層次遍歷--樹的寬度高度,後序遍歷--祖先節點二叉樹
- 資料結構實驗之二叉樹八:(中序後序)求二叉樹的深度資料結構二叉樹
- 樹2-二叉樹複製, 遍歷, 計算葉子結點和高度二叉樹
- 【二叉樹】前中序求後序,中後序求前序二叉樹
- 滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹(二叉查詢樹)和最優二叉樹二叉樹
- 二叉樹的應用(1)--二叉樹排序樹基本操作二叉樹排序
- 二叉樹 & 二叉查詢樹二叉樹
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- 二叉樹 ---- 前序 中序 後序 知二求一二叉樹
- 排序二叉樹和平衡二叉樹排序二叉樹
- 二叉查詢樹(二叉排序樹)排序
- 二叉樹(順序儲存二叉樹,線索化二叉樹)二叉樹
- 求二叉樹的給定兩個結點之間的距離二叉樹
- 樹(2)--二叉樹的遍歷(非遞迴)+線索二叉樹二叉樹遞迴
- 二叉樹的子結構、深度以及重建二叉樹二叉樹
- 二叉搜尋樹和二叉樹的最近公共祖先二叉樹
- 二叉樹先知道後序和中序,求先序二叉樹
- 二叉樹的深度二叉樹
- 二叉樹的映象二叉樹
- 樹的高度;及字母表分析
- 手擼二叉樹——二叉查詢樹二叉樹
- 手擼二叉樹——AVL平衡二叉樹二叉樹
- 資料結構之樹結構概述(含滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹、紅黑樹、B-樹、B+樹、B*樹)資料結構二叉樹
- 樹(1)--樹和二叉樹的基本定義二叉樹
- 二叉樹二叉樹
- 已知二叉樹的先序和後序求任意一中序二叉樹
- 玩轉二叉樹(樹的遍歷)二叉樹
- 平衡樹和二叉樹的區別二叉樹
- 判斷二叉樹是否為滿二叉樹二叉樹
- 對稱的二叉樹二叉樹
- 二叉樹的遍歷二叉樹
- 灰哥的二叉樹二叉樹
- 二叉樹的基本操作二叉樹