zoukankan      html  css  js  c++  java
  • 二叉树递归遍历

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 typedef struct TNode *position;
     4 typedef position BinTree;//二叉树类型 
     5 struct TNode{//树结点定义 
     6     char data;//指向数据 
     7     BinTree Left;
     8     BinTree Right;
     9 }; 
    10 //将创建的二叉树以BinTree形式返回 
    11 BinTree CreateBintree()
    12 {   
    13     char ch = 0;
    14     BinTree BT;//等价于TNode *BT=NULL;
    15     scanf("%c",&ch);
    16     if('#'==ch){
    17         BT=NULL;
    18     }else{
    19         BT=(TNode*)malloc(sizeof(TNode));//申请新的结点内存 
    20         BT->data=ch;
    21         BT->Left=CreateBintree();
    22         BT->Right=CreateBintree();
    23     }
    24     return BT;
    25 } 
    26 //先序 (根左右) 
    27 int PreOrderTravel(BinTree BT){
    28     if(BT!=NULL){
    29         printf("%5c",BT->data);
    30         PreOrderTravel(BT->Left);
    31         PreOrderTravel(BT->Right);    
    32     }
    33     return 0;
    34 }
    35 //中序(左根右) 
    36 int MiddleOrderTravel(BinTree BT){
    37     if(BT!=NULL){
    38         MiddleOrderTravel(BT->Left);
    39         printf("%5c",BT->data);
    40         MiddleOrderTravel(BT->Right);    
    41     }
    42     return 0;
    43 }
    44 //后序 (左右根) 
    45 int AfterOrderTravel(BinTree BT){
    46     if(BT!=NULL){
    47         AfterOrderTravel(BT->Left);
    48         AfterOrderTravel(BT->Right);
    49         printf("%5c",BT->data);    
    50     }
    51     return 0;
    52 }
    53 
    54 int main(){
    55    BinTree newBT;
    56    newBT=CreateBintree();
    57    PreOrderTravel(newBT);
    58    /*之前一直有错是因newBT是空的,采取返回值保证newBT中有值*/ 
    59    printf("
    ");
    60    MiddleOrderTravel(newBT);
    61    printf("
    ");
    62    AfterOrderTravel(newBT);
    63    return 0; 
    64 }       

    以此图为例

  • 相关阅读:
    asp.net c#中去掉最后一个字符和去掉第一个字母
    两个div并排
    VS.Net2005中使用本地化功能实现多语言的切换
    gridview嵌套DropDownList選定值[转]
    C# 获取系统时间
    NERDTree,好用的文件浏览器
    通过$.browser来判断浏览器
    vim 智能提示
    让vim显示函数列表
    vim中文乱码解决方法
  • 原文地址:https://www.cnblogs.com/yjm5/p/9274769.html
Copyright © 2011-2022 走看看