二叉树的存储及遍历

  • 二叉树的存储结构: 
    1.顺序存储结构-适用于完全二叉树

   

    一般二叉树也可以通过补全结点,采用这种结构(会造成空间的浪费):

   

     2.链表存储:定义结构,含有三个域,分别存放数据、左结点、右结点

     

  •  二叉树的遍历(以链式存储为例):
  1. 递归(根本还是堆栈)实现
    1. 先序遍历:
    2. 中序遍历:
    3. 后序遍历:
    4. 每个节点都有三次碰到的机会,遍历过程中经过结点的路线一样,只是访问各结点的时机不同

       

    2.二叉树的非递归遍历(直接用循环和栈):

      1.中序遍历:

        2.先序遍历:

        3.层序遍历:

      • 二叉树遍历的本质问题:二维结构的线性化
      • 问题:遍历需要访问左右结点,访问了一个结点以后另一个结点怎么办-保存另一个结点或者当前结点
      • 如何保存这些结点:堆栈、队列----(前序中序后序,用堆栈保存自己这个结点(也可以保存右结点)
      • 用队列保存右结点:从根结点开始,抛出一个元素,存入该节点的左右结点
      • 特征:一层一层的访问

          

 

posted @   cvhgfds  阅读(195)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示