树和二叉树

树和二叉树_第1张图片

树是由节点(Node)组成的层次结构,有且仅有一个节点被称为根节点(Root),每个节点可以有零个或多个子节点,这些子节点也可以再次拥有零个或多个子节点。树的每个节点(除了根节点)都有一个父节点,位于同一层级的节点被称为兄弟节点,而每个节点的子节点之间没有任何顺序关系。

相关知识

  • 从节点A到节点K路径上任一节点都是节点K的祖先,节点K是路径上所有节点的子孙。
  • 节点的孩子个数称为该节点的,树上节点最大度数称为树的。如节点A和节点B度为3,节点C度是1。
  • 度大于0的节点为分支节点(非终端节点);度为0的节点为叶子节点(终端节点)。
  • 由根节点开始计算节点的层次。节点A在第一层,节点I在第三层。
  • 树的深度是树中节点的最大层数,本例中为4。

二叉树

二叉树是一种特殊的树结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。

树和二叉树_第2张图片

 满二叉树

如上图所示,当一个二叉树每层节点数都达到最大值2,这个二叉树为满二叉树。

完全二叉树

树和二叉树_第3张图片

 叶子节点只能出现在最下层和次下层,并且最下层的叶子结点都集中在该层的最左边的若干位置(连续)。如果节点H不存在,则不是完全二叉树;或者节点G不存在也不是完全二叉树。

非底层节点必须全部存在,且最底层节点必须要连续且靠右。



补充:

如何根据父节点位置求解左右子节点的位置。

树和二叉树_第4张图片

 虽然呈现的是树状结构,实际上是表格的形式。

当已知父节点坐标i(索引)时,由图中可归纳出规律左子节点坐标为2i+1,右子节点坐标为2i+2

当已知左右子节点的坐标i时,其父节点的坐标为(i-1)//2即可。

你可能感兴趣的:(数据结构)