概述
题目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;
Creat_Tree(T);
int i=0;
cout<<"输入要找的先序序列中的位置:";
int k;
while(cin>>k){
PreOrder_BiTree(T,i,k);
i=0;
cout<<"输入要找的先序序列中的位置:";
}
return 0;
}
1
2
4
9
@
@
6
@
8
@
@
@
3
@
@
输入要找的先序序列中的位置:1
先序序列的第1个位置的数据:1
输入要找的先序序列中的位置:2
先序序列的第2个位置的数据:2
输入要找的先序序列中的位置:3
先序序列的第3个位置的数据:4
输入要找的先序序列中的位置:4
先序序列的第4个位置的数据:9
输入要找的先序序列中的位置:5
先序序列的第5个位置的数据:6
输入要找的先序序列中的位置:@
Process returned 0 (0x0) execution time : 22.015 s
Press any key to continue.
最后
以上就是辛勤铃铛为你收集整理的2020-11-20 编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值的全部内容,希望文章能够帮你解决2020-11-20 编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复