二叉树(Java实现)
一、常见用语 1、逻辑结构: 描述数据之间逻辑上的相关关系。分为线性结构(如,字符串),和非线性结构(如,树,图)。 2、物理结构: 描述数据的存储结构,分为顺序结构(如,数组)和链式结构。 3、结点的度: 一个节点子树(即分支)个数。 4、叶结点: 也称为 终端节点, 指度为0的节点。 5、树的深度(高度): 树中结点层次的最大值。 6、有序树: 子树有先后次序之分(我的理解就是左右节点次序不可以颠倒)。 7、同构: 将节点适当重命名,即可得两颗完全相同的树 8、孩子节点: 一个节点的直接后继节点。 9、双亲节点: 一个节点的直接前驱节点。 二、二叉树中的概念 1、二叉树: 满足以下两个条件的树称为二叉树 ①节点的度不可以超过2 ②节点的孩子节点次序不可颠倒 2、满二叉树: 每层得节点数都是满的,即2 i-1 3、完全二叉树: 节点1~n分别对应于满二叉树的节点1~n 4、完全二叉树的性质: 三、二叉树的操作 public class TreeNode { String data; TreeNode LChild; TreeNode RChild; TreeNode(String data) { this.data = data; } public String toString() { return data; } } 使用前序遍历创建二叉树是比较合适,按照逻辑