题目6.41:
编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值
//题目:编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值
//解决方法:递归函数的参数使用引用参数
#include<iostream>
using namespace std;
#define TElemType double
typedef struct BiTNode
{
TElemType data;
struct BiTNode* lchild,* rchild;
}BiTNode,* BiTree;
void Creat_Tree(BiTree& T)
{
TElemType num;
if(cin>>num){
T=new BiTNode;
if(!T) exit(-2);
T->data=num;
Creat_Tree(T->lchild);
Creat_Tree(T->rchild);
}
if(!cin){
T=nullptr;
cin.clear();
cin.sync();
}
}
void PreOrder_BiTree(BiTree T,int& i,int k)
{
if(T){
i++;
if(i==k)
cout<<"先序序列的"<<"第"<<k<<"个位置的数据:"<<T->data<<endl;
PreOrder_BiTree(T->lchild,i,k);
PreOrder_BiTree(T->rchild,i,k);
}
}
int main()
{
BiTree T;
Crea