二叉树简介
二叉树是每个节点最多有两个子树的树结构。通常被称作左子树(left subtree)和右子树(right subtree),二叉树常被用于实现二叉查找树二叉堆。
二叉树 深度为K 并且有2^K-1个节点的二叉树称为满二叉树。这种树的特点是每一层的节点数都是最大节点数。而且在一棵二叉树中,除最后一层外,若其余层都是满的 并且最后一层或者是满的,或者是在右边缺少连续的若干个节点,则称为完全二叉树。具有n个节点的完全二叉树的深度为floor(log2n)+1.深度为K的完全二叉树至少有2^(K-1)个叶子节点,至多有2^K-1个节点。
二叉树遍历
二叉树的遍历分为三种情况 分别为 先序,中序,后序
1 先序(根左右)
先序遍历顺序为 根节点 ,左子树,右子树
步骤
观察表格 先找根节点 ,找对应根节点的左子树 ,后找右子树, 按顺序查
根节点——>对应根节点的左子树(直到访问的左子树无叶子节点位置)——>最后向上找右子树
AB->ABD->ABDH->ABDHI->ABDHIEJK->ABDHIEJKCFML
->ABDHIEJKCFMLGNOP
ABDHIEJKCFMLGNOP
2 中序(左根右)
访问左子树。【先访问左子树中的左子树,再访问左子树中的右子树。】直到访问到叶子结点后输出。 输出根。
访问右子树。【先访问右子树中的左子树,再访问右子树中的右子树。】直到访问到叶子结点后输出。
左子树中的左子树(直到无节点)——> 根 ——> 右子树
先找A 的左子树 1 ,再找B 的左子树 2,再找 D 的左子树 3. 3没有左子树 左根右 原则 3输出 HI 2 输出 HID
4 输出 JEK
1 输出 HIDBJEK
总 的左子树部分 HIDBJEK
根 A
A 的右子树 5,5的左子树 6 LMF 5 的根节点 C 输出 LMFC
5的 右子树 7 输出 NG ,7的 右子树8 输出PO
总的右子树 LMFCNGPO
即 中序排列
HIDBJEK A LMFCNGPO
3 后序(左右根)
先输出1 的 左子树 2 的左子树 3 IHD
4 输出 JKE
1 输出 IHDJKEB
6 输出LMF ,8输出 PO ,7输出NPOG
5 输出 LMFNPOGC
即总右子树 LMFNPOGC
后序 IHDJKEB LMFNPOGC A