zoukankan      html  css  js  c++  java
  • 二叉树遍历(C++实现)

    用C++实现二叉树的“先根遍历”存储。

    用C++实现二叉树的“先根遍历”、“中根遍历”、“后根遍历”分别输出二叉树中结点的数据。

     1 #include <iostream>
     2 using namespace std ;
     3 
     4 struct BiNode 
     5 {
     6     char data ;
     7     BiNode *lchild , *rchild ;
     8 } ;
     9 BiNode *BiTree ;
    10 
    11 int NodeID ;
    12 
    13 BiNode *CreateBiTree (char *c , int n)
    14 {
    15     BiNode *T ;
    16     NodeID ++ ;
    17     if (NodeID > n)
    18     {
    19         return (NULL) ;
    20     }
    21     if (c[NodeID] == '0')
    22     {
    23         return (NULL) ;
    24     }
    25     T = new BiNode ;
    26     T -> data = c[NodeID] ;
    27     T -> lchild = CreateBiTree (c , n) ;
    28     T -> rchild = CreateBiTree (c , n) ;
    29     return (T) ;
    30 }
    31 
    32 void PreOrderTraverse (BiNode *T)
    33 {
    34     if (T)
    35     {
    36         cout << T -> data << " ";
    37         PreOrderTraverse (T -> lchild) ;
    38         PreOrderTraverse (T -> rchild) ;
    39     }
    40 }
    41 
    42 void InOrderTraverse (BiNode *T)
    43 {
    44     if (T)
    45     {
    46         InOrderTraverse (T -> lchild) ;
    47         cout << T -> data << " ";
    48         InOrderTraverse (T -> rchild) ;
    49     }
    50 }
    51 
    52 void PostOrderTraverse (BiNode *T)
    53 {
    54     if (T)
    55     {
    56         PostOrderTraverse (T -> lchild) ;
    57         PostOrderTraverse (T -> rchild) ;
    58         cout << T -> data << " ";
    59     }
    60 }
    61 
    62 int main ()
    63 {
    64     int i , SampleNum ;
    65     char c[100] ;
    66     cin >> SampleNum ;
    67     for (i = 1 ; i <= SampleNum ; i ++)
    68     {
    69         cin >> c[i] ;
    70     }
    71     NodeID = 0 ;
    72     BiTree = CreateBiTree (c , SampleNum) ;
    73     PreOrderTraverse (BiTree) ;
    74     cout << endl ;
    75     InOrderTraverse (BiTree) ;
    76     cout << endl ;
    77     PostOrderTraverse (BiTree) ;
    78     return 0 ;
    79 }
  • 相关阅读:
    HDU 5671 矩阵
    HDU 5670
    UVA 11995 STL 使用
    VK Cup 2016
    字段定义
    apache用户
    apache
    使用第三方登录
    setex()
    如果客户端禁用了cookie,如何实现session
  • 原文地址:https://www.cnblogs.com/maoguy/p/6002527.html
Copyright © 2011-2022 走看看