美文网首页
【数据结构】【C#】024-树(Tree):🌳树的表示

【数据结构】【C#】024-树(Tree):🌳树的表示

作者: lijianfex | 来源:发表于2018-11-09 12:14 被阅读11次

    树与树的表示

    一、什么是树?

    • 客观世界中中许多事物存在层次关系
      人类社会家谱
      社会组织结构
      图书信息管理
      家族树
    • 分层次组织在管理上具有更高的效率!
    • 数据管理的基本操作之一:查找
    • 如何实现有效率的查找?

    • 二、引例-由查找引出二分查找判定树

    查找:根据某个给定关键字K ,从集合R中找出关键字与K相同的记录
    • 静态查找:集合中记录是固定的
       没有插入和删除操作,只有查找
    • 动态查找:集合中记录是动态变化的
       除查找,还可能发生插入和删除
    • 为了查找方便,我们引入哨兵,静态表中元素默认从1号索引存储,0号用来设置为哨兵,存储我们要查找的值K

    二分查找的算法:

    C#.jpg

    二分查找判定树:

    三、树的定义

    树(Tree): n(n≥0)个结点构成的有限集合
    当n=0时,称为空树;

    对于任一棵非空树(n> 0),它具备以下性质

    • 树中有一个称为“根(Root)”的特殊结点,用 r 表示;

    • 其余结点可分为m(m>0)个互不相交的有限集T1,T2,... ,Tm,其 中每个集合本身又是一棵树,称为原来树的“子树(SubTree)”

      子树

    树与非树的判定:
    • 子树是不相交的;
    • 除了根结点外,每个结点有且仅有一个父结点;
    • 一棵N个结点的树有N-1条边。

    树的一些基本术语 :
    1. 结点的度(Degree):结点的子树个数

    2. 树的度:树的所有结点中最大的度数

    3. 叶结点(Leaf):度为0的结点

    4. 父结点(Parent):有子树的结点是其子树 的根结点的父结点

    5. 子结点(Child):若A结点是B结点的父结 点,则称B结点是A结点的子结点;子结点也 称孩子结点。

    6. 兄弟结点(Sibling):具有同一父结点的各 结点彼此是兄弟结点。

    7. 路径和路径长度:从结点n1到nk的路径为一 个结点序列n1 , n2 ,… , nk , ni是 ni+1的父结 点。路径所包含边的个数为路径的长度。

    8. 祖先结点(Ancestor):沿树根到某一结点路 径上的所有结点都是这个结点的祖先结点。

    9. 子孙结点(Descendant):某一结点的子树 中的所有结点是这个结点的子孙。

    10. 结点的层次(Level):规定根结点在1层, 其它任一结点的层数是其父结点的层数加1。

    11. 树的深度(Depth):树中所有结点中的最 大层次是这棵树的深度。


    四、树的表示:



    将儿子-兄弟表示法的树,倾斜45度,便是一个二叉树(度为2的树)

    相关文章

      网友评论

          本文标题:【数据结构】【C#】024-树(Tree):🌳树的表示

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