二叉树(Binary Tree)
1. 介绍
二叉树(Binary Tree)是计算机科学中一种重要的数据结构,它具有以下特点:
-
结构特点:
- 二叉树是树形结构的一种,其中每个节点最多有两个子节点。
- 子节点分为左子节点(Left Child)和右子节点(Right Child)。
- 二叉树的最上面的节点称为根节点(Root),没有子节点的节点称为叶节点(Leaf Node)。
-
基本术语:
- 节点(Node):树中的每个元素。
- 根节点(Root):树的起始节点。
- 叶子节点(Leaf):没有子节点的节点。
- 高度(Height):从根节点到最远叶子节点的最长路径。
- 深度(Depth):从根节点到某节点的路径长度。
-
分类:
- 满二叉树:每一层的节点都达到了最大值(除了叶子节点外,每个节点都有两个子节点)。
- 完全二叉树:除最后一层外,其余各层都是满的,并且最后一层的节点从左到右依次排列。
- 二叉搜索树(Binary Search Tree, BST):对于每个节点,其左子树的所有节点值小于该节点值,其右子树的所有节点值大于该节点值。
- 平衡二叉树:一种特殊的二叉搜索树,任何节点的左右子树高度差不超过1,如AVL树和红黑树。
-
遍历方式:
- 前序遍历(Preorder Traversal):根节点 -> 左子树 -> 右子树。
- 中序遍历(Inorder Traversal):左子树 -> 根节点 -> 右子树。(二叉搜索树的中序遍历结果是有序的)
- 后序遍历(Postorder Traversal):左子树 -> 右子树 -> 根节点。
- 层次遍历(Level-order Traversal):按层从上到下,从左到右依次遍历。