(1)二叉树
二叉树的任意一个节点的子节点不超过两个。
(2)满二叉树
所有的叶子节点都在最后一层,而且节点的总数为2^-1,n是树的高度。
(3)完全二叉树
完全二叉树的所有叶子节点都在最后一层或者倒数第二层,并且倒数第二层的叶子节点从右向左连续,最后一层的叶子节点从左向右连续。
(4)二叉树的链式存储结构
(5)二叉树的代码实现(创建、添加节点、遍历节点、删除节点)
① 先说一下二叉树的三种遍历方式:前序遍历、中序遍历和后序遍历。
我们以二叉树的根节点为基准看,前序遍历先找根节点,再找左子节点,最后找右子节点;中序遍历先找左子节点,再找根节点,最后找右子节点;后序遍历先找左子节点,再找右子节点,最后找根节点。我们可以看出根节点在三种遍历方式的次序也是前中后。
看下面的二叉树的三种遍历结果:
1、前序:1 2 4 5 3 6 7
2、中序:4 2 5 1 6 3 7
3、后序:4 5 2 6 7 3 1
② 二叉树的创建、添加子节点、遍历和删除节点
//二叉树类
public class BinaryTree {
//根节点
private TreeNode root;
//创建根节点
public void setRoot( TreeNode root){
this.root = root;
}
//获取根节点
public TreeNode getRoot() {
return root;
}
//前序遍历根节点
public void frontShow() {
if (root != null){
root.frontShow();
}
}
//中序遍历
public void midShow() {
if (root != null){
root.midShow();
}
}
//后序遍历
public void rearShow() {
if (root != null){
root.rearShow();
}
}
//删除节点
public void delete(int i) {
if (root.getValue() == i){
root = nul