diff --git a/Algorithm.md b/Algorithm.md index a30c200..49d1bbf 100644 --- a/Algorithm.md +++ b/Algorithm.md @@ -561,9 +561,7 @@ public class Stack extends Vector { ### 树(Tree) -**树(Tree)**是一个分层的数据结构,由节点和连接节点的边组成,是一种特殊的图,它与图最大的区别是没有循环。树的结构十分直观,而树的很多概念定义都有一个相同的特点:递归。 - -各种树解决的问题以及面临的新问题: +**树(Tree)**是一个分层的数据结构,由节点和连接节点的边组成,是一种特殊的图,它与图最大的区别是没有循环。树的结构十分直观,而树的很多概念定义都有一个相同的特点:递归。各种树解决的问题以及面临的新问题: - **二叉查找树(BST)**:解决了排序的基本问题,但是由于无法保证平衡,可能退化为链表 - **平衡二叉树(AVL)**:通过旋转解决了平衡的问题,但是旋转操作效率太低 @@ -739,6 +737,29 @@ public class TreeNode { +##### 斜树 + +- **左斜树**:所有结点都只有左子树 +- **右斜树**:所有结点都只有右子树 + +![斜树](images/Algorithm/斜树.png) + + + +##### 满二叉树 + +一颗二叉树的所有分支结点都存在左子树和右子树,且所有叶子节点都只存在在最下面一层。 +![满二叉树](images/Algorithm/满二叉树.png) + + + +##### 完全二叉树 + +若二叉树的深度为k,二叉树的层数从1到k-1层的结点都达到了最大个数,在第k层的所有结点都集中在最左边,这就是完全二叉树。完全二叉树由满二叉树引出,满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。 +![完全二叉树](images/Algorithm/完全二叉树.png) + + + #### 二叉搜索树(Binary Search Tree) 二叉搜索树, 又叫**二叉查找树**,它是一棵空树或是具有下列性质的二叉树: diff --git a/images/Algorithm/完全二叉树.png b/images/Algorithm/完全二叉树.png new file mode 100644 index 0000000..2dd64d7 Binary files /dev/null and b/images/Algorithm/完全二叉树.png differ diff --git a/images/Algorithm/斜树.png b/images/Algorithm/斜树.png new file mode 100644 index 0000000..39d4f98 Binary files /dev/null and b/images/Algorithm/斜树.png differ diff --git a/images/Algorithm/满二叉树.png b/images/Algorithm/满二叉树.png new file mode 100644 index 0000000..128c6c2 Binary files /dev/null and b/images/Algorithm/满二叉树.png differ