zoukankan      html  css  js  c++  java
  • (6)二叉树遍历——4

    二叉树遍历主要有3种方式:先序遍历,中序遍历,后序遍历。

    二叉树是每个节点最多有两个子树的树结构。

    二叉树可以为空,但树不能为空

    二叉树中每个元素的子树都是有序的。

     1 #include "iostream"
     2 #define N 7
     3 
     4 using namespace std;
     5 
     6 typedef struct node
     7 {
     8     int data;
     9     struct node *leftChild;
    10     struct node *rightChild;
    11 }BiTreeNode,*BiTree;
    12 
    13 BiTreeNode *createNode(int i)
    14 {
    15     BiTreeNode *q = new BiTreeNode;
    16     q->leftChild  = NULL;
    17     q->rightChild = NULL;
    18     q->data       = i;
    19     return q;
    20 }
    21 
    22 BiTree createBiTree()
    23 {
    24     BiTreeNode *p[N] = {NULL};
    25     int i;
    26     for (i=0;i<N;i++)
    27     {
    28         p[i] = createNode(i+1);
    29     }
    30 
    31     for (i=0;i<N/2;i++)
    32     {
    33         p[i]->leftChild = p[i*2+1];
    34         p[i]->rightChild = p[i*2+2];
    35     }
    36 
    37     return p[0];
    38 }
    39 
    40 void preOrderTraverse(BiTree T)//先序
    41 {
    42     if (T)
    43     {
    44         cout << T->data << " ";
    45         preOrderTraverse(T->leftChild);
    46         preOrderTraverse(T->rightChild);
    47     }
    48 }
    49 
    50 void preOrderTraverse1(BiTree T)//中序
    51 {
    52     if (T)
    53     {
    54         preOrderTraverse1(T->leftChild);
    55                 cout << T->data << " ";
    56         preOrderTraverse1(T->rightChild);
    57     }
    58 }
    59 
    60 void preOrderTraverse2(BiTree T)//后序
    61 {
    62     if (T)
    63     {
    64         preOrderTraverse2(T->leftChild);
    65         preOrderTraverse2(T->rightChild);
    66                 cout << T->data << " ";
    67     }
    68 }
    69 
    70 
    71 int main()
    72 {
    73     BiTree T;
    74 
    75     T = createBiTree();
    76     
    77     cout << "先序遍历:" << endl;
    78     preOrderTraverse(T);
    79     cout << endl << endl ;
    80 
    81     return 0;
    82 }
    View Code

    ——整理自《C/C++程序员面试宝典》

  • 相关阅读:
    第三次作业
    最后一次作业
    第14.15周作业
    第七周作业
    第六周作业
    第四周作业
    第三周作业
    第二周作业
    第一周作业
    第0次作业
  • 原文地址:https://www.cnblogs.com/thunder-wu/p/6670066.html
Copyright © 2011-2022 走看看