网站LOGO
dodo-Blog
页面加载中
2月22日
网站LOGO dodo-Blog
dodo's website.
菜单
  • 用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    数据结构-二叉树层次遍历
    点击复制本页信息
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。

    数据结构-二叉树层次遍历

    dodo · 原创 ·
    尚未分类 · 数据结构二叉树层序遍历
    共 1818 字 · 约 1 分钟 · 217
    本文最后更新于2023年09月14日,已经过了161天没有更新,若内容或图片失效,请留言反馈

    二叉树的层次遍历


    算法思想:

    1、初始化一个辅助队列

    2、根结点入队

    3、若队列非空,则队头结点出队,访问该结点,并将其左右孩子插入队尾,如果没有就直接下一步

    4、重复第3步直到队列为空

    //层序遍历
    void LevelOrder(BiTree T){
      LinkQueue Q;
      InitQueue(Q);                //初始化辅助队列
      BiTree p;
      EnQueue(Q,T);                //将根结点入队
      while(!IsEmpty(Q)){          //队列不空则循环
        DeQueue(Q,p):              //队头结点出队
        visit(p);                  //访问出队结点
        if(p->lchild!=NULL)
          EnQueue(Q,p->lchild);    //左孩子入队
        if(p->rchild!=NULL)        //右孩子入队
          EnQueue(Q,p->rchild);
      }
    }
    
    //二叉树的结点(链式存储)
    typedef struct BiTNode{
      char data;
      struct BiTNode *lchild,*rchild;
    }BiTNode,*BiTree;
    
    //链式队列结点
    typedef struct LinkNode{
      BiTNode * data;              //存指针而不是结点
      struct LinkNode *next;
    }LinkNode;
    
    typedef struce{
      LinkNode *front,*rear;        //队头队尾
    }LinkQueue;


    声明:本文由 dodo(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。

    还没有人喜爱这篇文章呢

    评论区已全部关闭
    博客logo dodo-Blog dodo's website.
    ICP 冀ICP备2023030308号 ICP 冀公网安备13060702000192号 又拍云 本站由又拍云提供CDN加速/云存储服务

    🕛

    本站已运行 290 天 15 小时 24 分

    🌳

    自豪地使用 Typecho 建站,并搭配 MyLife 主题
    dodo-Blog. © 2023 ~ 2024.
    网站logo

    dodo-Blog dodo's website.
     
     
     
     
    壁纸