二叉树定义
在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为节点)按分支关系组织起来的结构。二叉树(Binary Tree)是每个节点最多有两个子树的有序树。通常子树被称作"左子树"(left subtree)和"右子树"(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。值得注意的是,二叉树不是树的特殊情形。在图论中,二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根节点的度不大于2。有了根节点后,每个顶点定义了唯一的根节点,和最多2个子节点。然而,没有足够的信息来区分左节点和右节点。
二叉树的存储结构
二叉树常用链式存储。如下图;
最常用的是图a的二叉链表法。
几种遍历
1.前序遍历(根左右)
递归定义;
- 访问根节点
- 前序遍历根节点的左子树
- 前序遍历根节点的右子树
2.中序遍历(左根右)
递归定义;
- 中序遍历根节点的左孩子
- 访问根节点