美文网首页
数据结构_树_基础

数据结构_树_基础

作者: arkulo | 来源:发表于2015-09-13 11:02 被阅读90次

    github地址:
    https://github.com/arkulo56/thought/blob/master/software/dataStruct/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84_%E6%A0%91_%E5%9F%BA%E7%A1%80.md

    树-基础

    基本概念

    https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/tree.pnghttps://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/tree.png
    1. 数据元素一对多的关系
    2. 根节点唯一
    3. 现实生活中一对多的关系很多
    4. 除了根节点,其他节点只有一个双亲节点
    5. 叶子节点无孩子,度为0
    6. 每个分支节点有一个双亲,多个孩子
    7. 子树是分支节点和他的孩子组成的树
    8. 森林是多个不相交的子树
    9. 节点的度:节点的孩子数量
    10. 树的度:节点度的最大值
    11. 深度:树的层数
    12. 兄弟:同一深度,同一双亲的节点
    13. 堂兄弟:同一深度,不同双亲的节点

    树的存储结构

    树不像二叉树,没有前、中、后序遍历

    树也是用顺序和链式存储,但结构会比较灵活

    双亲表示法

    data parent

    一个元素包含两个域(data,parent),数据域和指向双亲的指针(链式存储),然后把多个元素保存在一个数组(顺序存储)中。

    孩子表示法

    data child1 child2 ... childn

    同上,每个节点都保存在数组中,而每个节点的多个指针又指向了保存在数组其他位置上的孩子节点

    孩子兄弟表示法

    data firstchild rightsib

    逻辑和上面两种表示法相同

    不同的表示法是为了解决不同的查询需求,例如查询是自下而上的,那就会用双亲表示法


    总结

    因为树的度无法预知,也无法控制,存储结构不容易实现,所以树不常用,从而引申出了有规律可循的‘二叉树’

    相关文章

      网友评论

          本文标题:数据结构_树_基础

          本文链接:https://www.haomeiwen.com/subject/dhopcttx.html