码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构--树

时间:2017-09-23 00:08:40      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:str   strong   表示   es2017   分享   操作   数据   后续遍历   位置   

1、树的一些定义

 

  1.1  树

    有且只有一个称为根的节点;

    有若干个互不相交的子树,这些子树本身也是一棵树。

    技术分享

  1.2  深度

从根节点到最底层节点的层数成为深度,根节点是第一层。

  1.3  度

    最大子节点的个数称之为度。

 

2、树分类

  2.1  一般树

    任意一个节点的子节点的个数都不受限制

  2.2  二叉树

    任意一个节点的子节点个数最多两个,且子节点的位置不可更改。

    分类

      一般二叉树

      满二叉树

        在不增加树深度的情况下,无法再添加一个节点的二叉树是满二叉树。

      完全二叉树

        如果只删除了最底层最右边的连续若干个节点,这样形成的二叉树就是完全二叉树。

  2.3  森林

    n个互不相交的树的集合

 

3、树的存储

  3.1  二叉树的存储

    连续存储

      优点:

        查找某个节点的父节点和子节点

      缺点

        耗用内存空

    链式存储

  3.2  一般树的存储

    双亲表示法

      求父节点方便

    孩子表示法  

      求子节点方便

    双亲孩子表示法

      求父节点和子节点都很方便

    二叉树表示法

      把一个普通树转换为二叉树来存储

      具体方法:

        设法保证任意一个节点的左指针域向它的第一个孩子,右指针域指向它的堂兄弟,只要满足此条件,就可以把一个普通树转化为二叉树。

  3.3  森林的存储

    先把森林转化为二叉树,再存储二叉树。

 

4、树操作

  4.1  先序遍历

    1.   先访问根节点
    2.   再先序访问左子树
    3.   再先序访问右子树

  4.2  中序遍历

    1.   先中序访问左子树
    2.   再访问根节点
    3.   再中序访问右子树

  4.3  后续遍历

    1.    先后序访问左子树
    2.   再后序访问右节点
    3.   再访问根节点

数据结构--树

标签:str   strong   表示   es2017   分享   操作   数据   后续遍历   位置   

原文地址:http://www.cnblogs.com/eager/p/7577340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!