阿里云做网站号码,房地产开发建设工程口碑好,200元自助网站建设,安卓程序下载安装树的概念 树是一种非线性的数据结构#xff0c;它是由n#xff08;n0#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树#xff0c;也就是说它是根朝上#xff0c;而叶朝下的
根节点#xff1a;根节点没有前驱结点除根节点…树的概念 树是一种非线性的数据结构它是由nn0个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树也就是说它是根朝上而叶朝下的
根节点根节点没有前驱结点除根节点外其余结点被分成是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱可以有0个或者多个后继因此树是递归定义的节点的度一个节点含有的子树的个数称为该节点的度叶节点度为0的节点称为叶节点非终端节点/分支节点度不为0的节点双亲结点/父节点若一个节点含有子节点则这个节点称为其子节点的父节点孩子节点/子节点:一个节点含有的子树的根节点称为该节点的子节点兄弟节点具有相同父节点的节点互称为兄弟节点树的度一棵树中最大的节点的度称为树的度节点的层次从根开始定义起根为第一层根的子节点是第二层以此类推树的高度或深度树中节点的最大层次堂兄弟节点双亲在同一层的节点互为堂兄弟节点的祖先从根到该节点所经分支上的所有节点子孙以某节点为根的子树中任一节点都称为该节点的子孙森林由m棵互不相交的树的集合称为森林
树的表示 树结构相对线性表就比较复杂了要存储表示起来就比较麻烦了实际中树有很多表示方式如双亲表示法孩子表示法孩子兄弟表示法等等。我们这里来了解最常用的孩子兄弟表示法
typedef int DataType;
struct Node
{struct Node* firstChild1;struct Node* pNextBrother;DataType data;
};二叉树的概念及结构 二叉树是树形结构的一个重要类型。许多实际问题抽象出来的结构往往是二叉树形式即使是一般的树也只能简单地转换为二叉树而且二叉树的存储结构及其算法都较为简单因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树且有左右之分
一棵二叉树是节点的一个有限集合该集合或者为空或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成
二叉树的特点
每个节点最多有两棵子树即二叉树不存在度大于2的节点二叉树的子树有左右之分其子树的次序不能颠倒
特殊的二叉树 **满二叉树**一个二叉树如果每一个层的节点数都达到最大值2则这个二叉树就是满二叉树 也就是说如果一个二叉树的层数为k且节点总数是(2^k) -1则它就是满二叉树
在一棵二叉树中如果所有分支节点都存在左子树和右子树并且所有叶节点都在同一层上这样的一棵二叉树称作完美二叉树满二叉树
**完全二叉树**完全二叉树是效率很高的数据结构完全二叉树是由满二叉树引出来的。对于深度为k的有n个节点的二叉树当且仅当其每一个节点都与深度为k的满二叉树中编号从1至n的节点–对应时称之为完全二叉树。要注意的是满二叉树是一种特殊的完全二叉树
而在一棵二叉树中除最后一层外若其余层都是满的并且或者最后一层是满的或者是在右边缺少连续若干结点则此二叉树为完全二叉树
完全二叉树是最理想的树的结构很容易证明有n个节点的完全二叉树的深度为O(logN)