给定顺序存储的二叉树,求二叉树的高度。
二叉树的顺序存储是指用一组地址连续的存储单元依次自上而下、自左向右存储完全二叉树上的结点元素(一般二叉树则将其每个结点与完全二叉树上的结点对照)。
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
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; }
原文:https://www.cnblogs.com/zzjam--1/p/10891041.html