数据结构:二叉树高度(顺序存储)
给定顺序存储的二叉树,求二叉树的高度。
二叉树的顺序存储是指用一组地址连续的存储单元依次自上而下、自左向右存储完全二叉树上的结点元素(一般二叉树则将其每个结点与完全二叉树上的结点对照)。
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
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; }
浙公网安备 33010602011771号