概述
树
- 概念
- 相关术语
- 特点
- 树的性质
- 二叉树
- 概念
- 几个特殊的二叉树
- 二叉树的性质
概念
树:非顺序(线形)数据结构;基于结点的数据结构,但树里面的每个结点,可以含有多个链分别指向其他多个结点。
相关术语
根节点:位于树顶部的节点叫做根节点,没有父节点。
内部节点和外部节点(支节点和叶子节点):
树中每个元素都叫做节点,节点分为内部节点和外部节点。
至少有一个子节点的节点被称为内部节点(支节点)。
没有子节点的节点被称为外部节点或叶节点。
节点的祖先和后代:
除了根节点外,每个节点有且仅有一个父结点。
一个节点(除了根节点)的祖先包括父节点、祖父节点、曾祖父节点等。
一个节点的后代包括子节点、孙子节点、曾孙节点等。
子树:子树由节点和它的后代构成。
节点的度:一个节点含有的子结点的个数
树的度:树内所有节点的度的最大值
节点的深度:节点的深度取决于它的祖先元素的节点数量。
树的深度(高度):取决于所有节点深度的最大值。
特点
- 树的根结点没有前驱结点,其它结点有且只有一个前驱结点;
- 每个结点可以有0个或多个后继结点;
- 子树互不相交;
- 一颗有n个结点的树有n-1条边(因为根结点没有向上的边)。
树的性质
树中的结点数等于所有结点的度数加1(度数对应树的边数,n个结点的树有n-1条边(根节点没有向上的边));
度为m的树中第i层最多有 m i − 1 m^{i-1} mi−1个结点(i >= 1)(度为m的树中第i层结点最多的数量等于满m叉树第i层的结点数量);
高度为h的m叉树至多有 m h − 1 m − 1 frac{m^{h}-1}{m - 1} m−1mh−1个结点(最多情况对应满二叉树,计算方法为等比数列求和);
具有n个结点的m叉树的最小高度计算时考虑对应的完全m叉树(或者满m叉树)的情况(即设高度为h,则 m h − 1 m − 1 = n frac{m^{h}-1}{m - 1}= n m−1mh−1=n,计算出的h向下取整 )。
二叉树
概念
每个结点最多有两颗子树(即二叉树中结点的最大度为2),且二叉树是有序树。
几个特殊的二叉树
满二叉树(Full Binary Tree)(完美二叉树(Perfect Binary Tree):指深度为k且有2k-1个结点的二叉树,即所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上。
完全二叉树(Complete Binary Tree):一颗深度为k的二叉树,k层的结点都是连续靠左并不可隔开的,并且1~k-1层的结点也组成了一棵满二叉树。
二叉排序树(Binary Search Tree ):左侧节点存储(比父节点)小的值,在右侧节点存储(比父节点)大的值。
平衡二叉树(Balance Tree):任意节点的子树的高度差都小于等于1。
二叉树的性质
对一棵二叉树,如果叶子节点的个数为 n 0 n_{0} n0,度为2的节点个数为 n 2 n_{2} n2,则 n 0 n_{0} n0= n 2 n_{2} n2+1(根据之前树的性质,有树的结点数等于所有结点的度数加1,得到 n 0 n_{0} n0 + n 1 n_{1} n1 + n 2 n_{2} n2 = n 1 + n 2 ∗ 2 + 1 n_{1} + n_{2}* 2+ 1 n1+n2∗2+1 ,从而得到该等式);
非空二叉树第k层上:最多有 2 k − 1 2^{k-1} 2k−1 个结点;
高度为h的二叉树上:最多有 2 h − 1 2^h-1 2h−1 个结点(对应满二叉树);
对于完全二叉树,结点编号为i的结点的双亲结点编号为[i / 2],若有左孩子,则左孩子编号为2 * i,若有右孩子,则右孩子编号为2 * i + 1;
具有n个节点的完全二叉树的深度为 l o g 2 n + 1 {log_{2}}^{n}+1 log2n+1
最后
以上就是欣慰薯片为你收集整理的数据结构——树概念相关术语特点树的性质二叉树的全部内容,希望文章能够帮你解决数据结构——树概念相关术语特点树的性质二叉树所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复