1.概念
二叉树:在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
2.有什么组成
根节点,节点,子树(左子树、右子树)
3.二叉树遍历(面试笔试易考点)
a、
先(前)序遍历(DLR):跟节点->左子树->右子树
中序遍历(LDR):左子树->跟节点->右子树
后序遍历(LRD):左子树->右子树->跟节点
b、
特点:1.这里的前中后指的是根节点在前、中或者后。2.左子树一定是在右子树前面的(左右)
c、
已知二叉树让你求前中后序?(简单一点的)
例子: A
/ \
B E
\ / \
C F G
/ /
D H
/ \
I J
前序遍历:ABCDEFGHIJ
中序遍历:BDCAFEIHJG
后序遍历:DCBFIJHGEA
4.二叉树还有一种面试题类型:已知前中序,求后序?已知中后序,求前序?(不可能出前后序,求中序?原因是情况会有多种)(复杂一点的面试笔试题)
例子:
前序:ABCEDFGHIJK
中序:ECBDFAHGJIK
求后续是多少?ABCDEFGHIJK ABCDGHIJK ECFDBHJKIGA
1.根据前序我们知道,跟节点一定是 A
A
2.在中序我们知道ECBDF一定是 A 的左子树;HGJIK一定是 A 的右子树
3.根据前序里面的BCEDF这部分,我们 B 是根节点
B G
4.根据中序里面的ECBDF这部分,我们知道EC一定是 B 的左子树;DF一定是 B 的右子树
5.根据前序里面的CE这部分,我们 C 是根节点
C D H I
6.根据中序里面的EC我们知道,E是C的左子树
E F J K
……
后序:ECFDBHJKIGA