树的六种存储结构

  1. 父指针表示法
    用两个等大小的数组存储。第一个存储结点的data,第二个存储每个结点父亲结点的标号(即父亲结点在第一个数组中的下标)
    注:这种表示法用于实现并查算法,每个结点只知父结点,不知子结点

  2. 子结点表表示法
    用邻接表存储。开一个存储元素为头结点的指针的一维数组,每个头结点后连一条单链表,链表结点存储元素为子结点在数组中的下标。
    注:这种表示法为图的邻接表存储方式,每个结点只知子结点,不知父结点,树是一种特殊的图。

  3. 带双亲的孩子链表
    将双亲表示法与孩子表示法相结合。

  4. 孩子兄弟表示法
    存储在数组中的每个结点都存储结点的值,以及指向父结点、最左子结点和右兄弟结点,三个指针唯一确定了结点在树中的位置

  5. 动态孩子兄弟表示法
    用二叉链表存储。每个结点有两个链域:firstchild、nextsibling,分别指向结点的第一个孩子结点以及下一个兄弟结点。
    注:这种方法十分重要,是将树和森林转化为二叉树形式的重要手段

    如下图

    可以发现,这样转化而来的二叉树,其右子树为空,这个结论很重要,他直接导出了将森林转化为二叉树的方法

  6. 顺序表示法
    这种方法通常用于序列化(serialize)树结构,将树以一系列字节形式压缩在磁盘上以备传输或日后使用。
    注:这对于分布式处理环境中的数据结构很重要

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值