#二叉树采用链式存储结构,设计一个算法求二叉树中第k层结点的个数(根节点算是第一层)
#思路:和求某一结点的层次一样,需要去遍历结点,如果结点的层次正好等于要求的层次,那么计数器+1,遍历完整棵树
#其实不用遍历完整棵树,只要层次大于要求的层次就可以不再遍历,如果层次仍然是小于要求的层数的话,就对其左右孩子进行递归操作
#仍然是在函数的自变量中添加一个自变量用来记树的高度
def KCount(bt,k):#bt是二叉树,k是第几层
global cnt
cnt=0
_KCount1(bt.b,1,k)#h一开始设置为1,因为从根节点开始,根节点的高度为1
return cnt
def _KCount(t,h,k):
global cnt
if t==None:return
if h==k:cnt+=1
if h<k:
_KCount(t.lchild,h+1,k)
_KCount(t.rchild,h+1,k)