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;
    }
  • 相关阅读:
    pycharm 快捷键
    jquery .on
    javaweb项目的优化
    python笔记
    git上解决代码冲突(merge版)
    OpenERP里面继承的用法
    OpenERP新手易犯错误之res.model
    bootstrap 仿实例
    深入理解Binder(二),Binder是什么?
    深入理解Binder(一),从AIDL谈起
  • 原文地址:https://www.cnblogs.com/digulove/p/7991341.html
Copyright © 2011-2022 走看看