软考:数据结构基础——二叉树三种遍历顺序

  一、二叉树的先序遍历

    规则,从根节点开始,优先访问每一个左孩子,每次访问都要输出数据

    示例,先序遍历的顺序

    下图节点的编号都代表着他们被访问的次序

    

void preOrder(BiTree T){
    if(T != NULL){
        printf("%d \n",T->data);
        preOrder(T->lchild);
        preOrder(T->rchild);
    }
}

 

   二、中序遍历二叉树

    从根节点开始,优先访问左孩子,当一个双亲节点的左孩子的所有节点被访问完时,访问这个双亲节点,之后访问它的右孩子,它的右孩子的左孩子的所有节点被访问完时才能访问它

    太绕了我要死了。

    示例

void inOrder(BiTree T){
    if(T != NULL){
        inOrder(T->lchild);
        printf("%d \n",T->data);
        inOrder(T->rchild);
    }
}

 

   三、后序遍历二叉树

    当一个双亲节点的所有子节点都被访问完时,才访问这个双亲节点,访问这些子节点都是优先访问左孩子节点

    

void postOrder(BiTree T){
    if(T != NULL){
        postOrder(T->lchild);
        postOrder(T->rchild);
        printf("%d \n",T->data);
    }
}

 

 

posted @ 2018-12-02 20:37  Weeeeew  阅读(1652)  评论(0编辑  收藏  举报