- 根节点:树中没有父节点的节点
- 叶节点:没有子节点的节点
- 非叶节点:叶节点以外的结点
- 分支度:每个结点拥有的子节点个数,树中最大的分支度即为该树的分支度
- 阶层:根节点阶层为1,其子节点为2,以此类推
- 二叉树可以为空,树不可以(至少要有根节点)
- 二叉树的子树有顺序关系
- 二叉树的分支度必须为0、1、2
- 对于二叉树:叶子节点 = 度数为2的节点+1
- 节点个数 = 叶子节点 + 度数为1的节点 + 度数为2的节点
二叉树结点类:
public class TreeNode {
int data;
TreeNode left;
TreeNode right;
public TreeNode(int data) {
this.data = data;
}
public String toString() {
return data+" ";
}
}
二叉树的增删改查:
public class Tree {
TreeNode root;
TreeNode parent;
boolean b;
/**
* 增加结点
* @param data
* @return
*/
public boolean add(int data) {
TreeNode node = new TreeNode(data);
if(root == null){
root = node;
} else {
TreeNode current = root;
whil