zoukankan      html  css  js  c++  java
  • C++ 创建和遍历二叉树

    一个简单的创建和遍历二叉树的C++程序,二叉树的其他操作程序待更新。

    #include <iostream>  
    using namespace std;  
    struct BiTNode{  
     char data;  
     struct BiTNode *lchild, *rchild;//左右孩子  
    };  
    BiTNode*T;  
    void CreateBiTree(BiTNode* &T);  
    void Inorder(BiTNode* &T);  
    void PreOrderTraverse(BiTNode* &T);  
    void Posorder(BiTNode* &T);  
    
    int main(){  
    cout<<"创建一颗树,其中A->Z字符代表树的数据,用“#”表示空树:"<<endl;  
      CreateBiTree(T);  
    cout<<"先序递归遍历:"<<endl;  
    PreOrderTraverse(T);  
    cout<<endl;  
    cout<<"中序递归遍历:"<<endl;  
      Inorder(T);  
    cout<<endl;  
    cout<<"后序递归遍历:"<<endl;  
            Posorder(T);  
    cout<<endl;  
      return 1;}  
    
    //=============================================先序递归创建二叉树树  
    void CreateBiTree(BiTNode* &T){  
     //按先序输入二叉树中结点的值(一个字符),空格字符代表空树,  
     //构造二叉树表表示二叉树T。  
     char ch;  
     if((ch=getchar())=='#')T=NULL;//其中getchar()为逐个读入标准库函数  
     else{  
      T=new BiTNode;//产生新的子树  
      T->data=ch;//由getchar()逐个读入来  
      CreateBiTree(T->lchild);//递归创建左子树  
      CreateBiTree(T->rchild);//递归创建右子树  
     }  
    }//CreateTree  
    
    //===============================================先序递归遍历二叉树  
    void PreOrderTraverse(BiTNode* &T){  
     //先序递归遍历二叉树  
     if(T){//当结点不为空的时候执行  
      cout<<T->data;  
      PreOrderTraverse(T->lchild);//  
      PreOrderTraverse(T->rchild);  
     }  
     else cout<<"";  
    }//PreOrderTraverse  
    
    //================================================中序遍历二叉树  
    void Inorder(BiTNode* &T){//中序递归遍历二叉树  
     if(T){//bt=null退层  
      Inorder(T->lchild);//中序遍历左子树  
      cout<<T->data;//访问参数  
      Inorder(T->rchild);//中序遍历右子树  
     }  
     else cout<<"";  
     }//Inorder  
    
    //=================================================后序递归遍历二叉树  
    void Posorder(BiTNode* &T){  
     if(T){  
      Posorder(T->lchild);//后序递归遍历左子树  
      Posorder(T->rchild);//后序递归遍历右子树  
      cout<<T->data;//访问根结点  
     }  
     else cout<<"";  
    }  
    
  • 相关阅读:
    T4设计时模板调试
    MVC开发T4代码生成之一文本模板基础
    经典选项卡
    IE 调试工具 Utilu IE Collection:IE5.5、6.0、7.0, 8.0…各版本浏览器兼容性测试工具
    滚动读行!
    自定义标签的用法、支持IE6
    jQuery 参数传递例子
    IMG在IE6下不能HOVER的解决办法!
    点击渐变弹出层
    操作滚动条滚动到指定位置
  • 原文地址:https://www.cnblogs.com/calamus/p/5875669.html
Copyright © 2011-2022 走看看