#include <iostream>
#include "createTree.h"
using namespace std;
BTNode* findK(BTNode* bt, int x)//返回第K个结点的地址
{
BTNode* l = NULL, * r = NULL;
static int k = x;//静态变量,只初始化一次
if (bt != NULL && k != 0)
{
l = findK(bt->lchild, k);
k--;
if (k == 0)
return bt;
else
r = findK(bt->rchild, k);
}
return l ? l : r;
}
char valueK(BTNode* bt, int k)
{
return findK(bt, k)->data;//通过返回的地址输出结点数据域中的值
//也可以直接在main函数中输出:cout << findK(root, k);
}
int main()
{
Btree root = createTree();
int k = 4;
cout << valueK(root, k);
return 0;
}
求二叉树中序序列中第K(K>=1)个节点的值
最新推荐文章于 2022-08-09 22:33:26 发布