输出利用先序遍历创建的二叉树中的指定结点的孩子结点


题目: 输出利用先序遍历创建的二叉树中的指定结点的孩子结点

利用递归遍历节点,将满足条件的节点地址保存 ,然后输出其左右节点即可



#include<iostream>
using namespace std;
typedef struct Tree
{
char x;
struct Tree *left;
struct Tree *right;
}tree;
void creat(tree *&L)
{
char s;
cin>>s;
if(s=='#')return ;
L=new tree;
L->x =s;
L->left =NULL;
L->right =NULL;
creat(L->left );
creat(L->right );
}
void serch(tree *p,char m,tree *&q)   //这里q采用引用直接赋值
{
if(p==NULL)return ;
if(p->x ==m)
q=p;
else 
{
serch(p->left ,m,q);
serch(p->right ,m,q);
}
}
int main()
{
tree *p;
creat(p);
char m;
cin>>m;
tree *q;
serch(p,m,q);
if(q->left ==NULL)cout<<"L:#"<<",";
else cout<<"L:"<<q->left->x<<"," ;
if(q->right ==NULL)cout<<"R:#";
else cout<<"R:"<<q->right->x ;
return 0;
 } 


输出利用先序遍历创建的二叉树中的指定结点的孩子结

猜你喜欢

转载自blog.csdn.net/acdalao/article/details/80063101
今日推荐