问题描述:假设二叉树采用二叉链存储结构存储,设计一个算法,求先序遍历序列中第 k(1 <= k <= 二叉树中结点个数) 个结点的值。
分析: 考虑使用递归,题目说求先序序列第 k 个结点值,所以考虑使用先序递归(先序递归形式)
- 当前 i 值为k,直接返回当前结点值
- 当前 i 值不为k,i++,并递归其左右子树
int i = 1;
ElemType FindK(BiTree T,int k){
if(T){
if(i == k)
return T->data;
i++;
FindK(T->lchild,k);
FindK(T->rchild,k);
}
}