19-数据结构_树-存储

存储    

1, 二叉树的存储

    1) 连续存储[完全二叉树]


       面临两个问题

        A. 有效节点存到线性的结构(数组)
        B. 将线性存储的有效结点还原成以前的树
       解决这两个问题
        A. 可通过先(中/后)序转换成线性结构
        B. 用无效结点将二叉树补充成完全二叉树
       综上:
        A. 只有完全二叉树才可以用连续的方式来存储
        B. 存储一般二叉树, 必须要将其补充为完全二叉树
       完全二叉树以连续的方式存储的
        优点:
          某个结点的子结点和父节点的编号都能计算出来.
          因此,判断是否有子结点,查找其父/子节点 非常快.
        缺点:
          非常耗内存

    2) 链式存储

        如图. 很容易理解


2, 一般树的存储

    1) 双亲表示法

        求父节点方便


    2) 孩子表示法

        求子结点方便


    3) 双亲孩子表示法   

        求父结点子结点都很方便


    4) 二叉树表示法[孩子兄弟表示法]

        把一个普通书转换成二叉树来存储
        转换方法:
            保证任意一个结点
              A. 左指针域指向它的第一个孩子
              B. 右指针域指向它的下一个兄弟
            只要满足此条件, 就可把普通树转换成二叉树
            该二叉树一定没有右子树
        

3, 森林的存储

    把森林转换为二叉树存储.

    森林的所有树的根结点相互为兄弟.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值