问题描述假设二叉树采用二叉存储结构存储设计一个算法,求先序遍历列中k(1 <= k <= 二叉树中结点个数) 个结点的值。

分析 考虑使用递归,题目说求先序序列第 k 个结点值,所以考虑使用先序递归(先序递归形式

  1. 当前 i 值为k,直接返回当前结点值
  2. 当前 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);
	}
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注