zoukankan      html  css  js  c++  java
  • 寻找二叉树双亲结点

    /*
     * @Issue:  寻找X结点的双亲结点
     * @Author: 一届书生
     * @LastEditTime: 2020-02-25 16:50:27
     */
    #include<iostream>
    using namespace std;
    #define type char
    typedef struct node{
        type data;
        node *lchild,*rchild;
    }Tree,*Pnode;
    
    // 构造树[先序遍历:中左右]
    void creat(Pnode &tree){
        type c;
        cin>>c;
        if(c=='#')tree=NULL;
        else{
            tree=new Tree;
            tree->data=c;
            creat(tree->lchild);
            creat(tree->rchild);
        }
    }
    
    // 寻找X结点的双亲结点
    void find(Pnode t,Pnode a){ //寻找a的双亲结点
        if(!t)return;
        if(t->lchild){
            if(t->lchild->data==a->data){
                cout<<t->data<<endl;
                return ;
            }
            find(t->lchild,a);
        }
        if(t->rchild){
            if(t->rchild->data==a->data){
                cout<<t->data<<endl;
                return ;
            }
            find(t->rchild,a);
        }
    }
    
    // 后序遍历
    void display(Pnode &t1){
        if(t1){
        display(t1->lchild);
        display(t1->rchild);
        cout<<t1->data<<"  ";
        }
    }
    
    
    int main(){
        // 样例:AB#CD##E##F#GH###
        /*
                A
              /  
             B     F
                   
               C      G  
              /      /
             D    E  H
    
        */
        Pnode t,a;
        t=new Tree;
        a=new Tree;
        creat(t);
    
        display(t);
        cout<<endl;
        
        type x;
        cin>>x;
        a->data=x;
        a->lchild=NULL;
        a->rchild=NULL;
    
        find(t,a);
        return 0;
    }
    

      

  • 相关阅读:
    springboot
    POI/JFreeChart
    ssm(6)spring-test
    DBUtils与BeanUtils
    数据连接池C3P0/DBCP/DRUID/自定义连接池
    web核心(3)响应头请求头状态码及dns解析过程
    log4j/Logback/SLF4j
    ssm(4)整合
    列表字典元组方法
    第四天 Python基础语法 编码规范 变量
  • 原文地址:https://www.cnblogs.com/52dxer/p/12362543.html
Copyright © 2011-2022 走看看