栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

二叉树遍历递归方式(先序遍历、中序遍历、后序遍历、层次遍历)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二叉树遍历递归方式(先序遍历、中序遍历、后序遍历、层次遍历)

目录

先序遍历

中序遍历

后序遍历

层次遍历


先序遍历
//4、先序遍历(递归遍历)
void PreOrder(BiTree T){
    if(T != NULL){
        Visit(T);
        PreOrder(T -> lchild);
        PreOrder(T -> rchild);
    }
}

中序遍历
/5、中序遍历(递归遍历)
void InOrder(BiTree T){
    if(T != NULL){
        InOrder(T -> lchild);
        Visit(T);
        InOrder(T -> rchild);
    }
}

后序遍历
//6、后序遍历(递归遍历)
void PostOrder(BiTree T){
    if(T != NULL){
        PostOrder(T -> lchild);
        PostOrder(T -> rchild);
        Visit(T);
    }
}

层次遍历
//7、层次遍历(当节点出队时如果它的左右不为空要把它的左右入队,上一层全部出队后,下一层会全部在队列里)(非递归遍历)
//注:不考虑队满情况
void LevelOrder(BiTree T){
    BiTree Queue[MaxSize];//Queue用来存放树的指针
    BiTree p;
    int front = -1, rear = -1;
    Queue[++rear] = T;
    while(front != rear){
        p = Queue[++front];
        Visit(p);
        if(p -> lchild != NULL)
        Queue[++rear] = p -> lchild;
        if(p -> rchild != NULL)
        Queue[++rear] = p -> rchild;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1039887.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号