zoukankan      html  css  js  c++  java
  • 二叉树的构建及后序遍历

    #include"stdio.h"
    #include"stdlib.h"
    #include<iostream>
    using namespace std;
    
    typedef char ElemType;
    
    typedef struct BiTNode{
        ElemType data;
        struct BiTNode *lchild, *rchild;
    }BiTNode, *BiTree;
    
    void CreatBiTree(BiTree &T){ //此处的T一定要加上取地址符,why?
        ElemType ch;
        cin >> ch;
        if(ch == '#')    
            T = NULL;//如果节点是叶节点,就不为其开辟存储空间
        else{
        //    if(!(T = (BiTNode *) malloc(sizeof(BiTNode))))
        //        exit(OVERFLOW); //节点内存分配失败就退出
            T = (BiTNode *) malloc(sizeof(BiTNode));
            T->data = ch;
            CreatBiTree(T->lchild);
            CreatBiTree(T->rchild);
        }
        return ;
    }
    
    void visit(BiTree node){
        //if(node->data != '#')
            cout << node->data;
    }
    
    void PostOrderTraverse(BiTree T){
        
        if(T){
        PostOrderTraverse(T->lchild);
        PostOrderTraverse(T->rchild);
        visit(T);
        }
    
        return ;
    }
    
    int main(){
    
        BiTree T;
        cout << "请以前序遍历的方式输入扩展二叉树:" <<endl;
        CreatBiTree(T);
    
        cout << "递归后序遍历输出为:" <<endl;
        PostOrderTraverse(T);
    
        cout << endl;
        return 1;
    }
  • 相关阅读:
    linux查找杀死进程
    设计模式
    解决导出excel数字为科学计数法问题
    K8S 容器运行时安全设置
    记一次dirty_ratio引起的线上事故
    配置rabbitmq
    k8s集群数据的备份和恢复
    ZK集群安装简易步骤
    Zookeeper 集群环境搭建
    Xcode
  • 原文地址:https://www.cnblogs.com/digulove/p/7991341.html
Copyright © 2011-2022 走看看