給定順序存儲的二叉樹,求二叉樹的高度。
二叉樹的順序存儲是指用一組地址連續的存儲單元依次自上而下、自左向右存儲完全二叉樹上的結點元素(一般二叉樹則將其每個結點與完全二叉樹上的結點對照)。
部分代碼已經給出,請補充完整,提交時請勿包含已經給出的代碼。
int main() { int tree[512], n = 0; int data; while(scanf("%d", &data), data!=-1) { tree[n++] = data; } printf("%d\n", Height(tree, n)); return 0; }
輸入為若干個整數(不超過512)表示一棵二叉樹順序表示時的結點元素值,其中0表示二叉樹對應結點為空。輸入以-1結束。
輸出二叉樹的高度。
//這道題可以不用遞歸,直接用完全二叉樹的一個性質

#include<stdio.h> #include<math.h> int Height(int *tree,int n) { return (int)log2(n)+1; }