二叉树中 根节点 到 所有值为x的结点 的路径

二叉树中根节点所有值为x的结点路径

void search_path(BTNode* p,int x){
    BTNode* S[LEN]; //定义工作栈
    int top=-1;     //栈顶指针
    BTNode* r=NULL; //指向最近访问过的节点 
    while(top>=0 || p){
  //栈空p空 停止循环 
        while(p){   //移最左下 
            S[++top]=p;
            if(p->data==x){
  //找到目标结点 
                cout<<"path: ";
                for(int i=0;i<=top;i++) visit(S[i]);
                cout<<";"<<endl;
//              exit(0);    加上这个语句就是只找一个 
            }           
            p=p->lchild;
        }
        while(top>=0 && S[top]->tag==1){    //访问标记 
//          visit(S[top]);
            top--;
        }
        if(top>=0){     
            S[top]->tag=1;    //标记栈顶 
            p=S[top]->rchild; //转右子树 
  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值