关于c语言二叉树

来源:百度知道 编辑:UC知道 时间:2024/05/17 03:43:12
设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为___
注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出
A. 349 B. 350 C. 255 D. 351

哪位高人结合这道题,给讲下二叉树结点求法?这样的公式怎么用啊?
O(∩_∩)O谢谢
自学这些东西的,没有合适的书,晕乎乎的。或者哪位有比较好的资源提供一下啊?

完全二叉树除了第一层和最后一层外,其余各层的结点数都是2的幂,所以都是偶数,因此,当最后一层的结点数为偶数时,树的总结点数才可能是奇数.
而完全二叉树只有最后一层的结点数为奇数时,树中才可能存在唯一的度为1的结点,即最后一个结点的父结点.但现在最后一层结点数为偶数,所以树中不存在度为1的结点,即n1=0.
所以n=n0+n2=2n0-1=699,n0=350

2的9次方是512,所以这个2叉树共10层,第10层叶子有699-511=188;
所以第9层叶子有256-188/2=162
所以叶子共有188+162=350

看书吧
书上都有的