您的位置:首页 > 理论基础 > 数据结构算法

数据结构-树(Tree)的基本概念

2017-06-22 15:29 232 查看
1.什么是树:

       树状图是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做"树"是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

2.树专业术语:

        节点的度:一个节点含有的子树的个数称为该节点的度;

        叶节点或终端节点:度为0的节点称为叶节点;

        非终端节点或分支节点:度不为0的节点; 

        双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;

        孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;

       兄弟节点:具有相同父节点的节点互称为兄弟节点;

       树的度:一棵树中,最大的节点的度称为树的度;

      节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;

      树的高度或深度:树中节点的最大层次;

      堂兄弟节点:双亲在同一层的节点互为堂兄弟;

      节点的祖先:从根到该节点所经分支上的所有节点;

      子孙:以某节点为根的子树中任一节点都称为该节点的子孙。

       森林:由m(m>=0)棵互不相交的树的集合称为森林;

3.树的分类:

       一般树:任意一个子节点的个数都不受限制,子节点的位子不做要求。

       二叉树:任意一个节点的子节点最多不超过两个,并且左右子节点的顺序不能改变。

       森林:n个互相交的树的集合

4.二叉树(重点掌握):

       二叉树是每个节点最多有两个子树的树结构。通常子树被称作"左子树"(left subtree)和"右子树"(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。

5.二叉树的分类:

          一般二叉树:普通二叉树

         满二叉树:在不增加二叉树的层数(树的深度)的前提下,无法再添加一个节点的二叉树,叫满二叉树。

                                                                      


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

         完全二叉树结构是线性结构,当然满二叉树也是线性结构。

                                                  


6.树的储存:

普通树的存储    

A.双亲表示法:每个节点的存放自己的父节点的下标。利用下标求父节点很方便

                                                                   


B.孩子表示法:每个节点存放自己的孩子节点。

该表示法求孩子节点很方便

                                                


C.双亲孩子表示法:结点中即存储孩子节点而且还存储父节点的下标。

D.二叉树存储:把一个普通的树转换成二叉树规则,左指针域指向第一个孩子,右指针域指向第一个兄弟节点 

                                     


E.森林的存储:类似有多个普通树,左指针域指向第一个孩子,右指针域指向第一个兄弟节点。

7.二叉树性质

(1) 在非空二叉树中,第i层的结点总数不超过

 , i>=1;

(2) 深度为h的二叉树最多有 

 个结点(h>=1),最少有h个结点;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息