题目描述
树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序时,可用树表示源源程序的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。满二叉树,完全二叉树,排序二叉树。
当一颗二叉树是满二叉树时,可以用如下的规则储存:
- 数组0下标不使用
- 节点i的左子节点在位置为(2*i);
- 节点i的右子节点在位置为(2*i+1);
- 节点i的父节点在位置为(i/2);
- 根节点被保存到数组下标为1的位置。
上图是一颗满二叉树,对于每个节点i, i ∗ 2 i*2 i∗2 是它的左子树, i ∗ 2 + 1 i*2+1 i∗2+1 是它的右子树, i / 2 i/2 <