一.二叉树的种类
1.满二叉树:就是说每一个非叶子节点的节点都有两个子节点。
2.完全二叉树:此二叉树只有最后一层可能没填满,并且存在的叶子节点都集中在左侧!!!
(满二叉树也是完全二叉树)
3.二叉搜索树(BST树):顾名思义,搜索是跟值相关联。
-
中间节点的左侧子树的所有节点的元素值小于中间节点的值
-
中间节点的右侧子树的所有节点的元素值大于中间节点的值
4.平衡二叉搜索树(AVL树):是一种既是平衡二叉树又是二叉搜索树的数据结构。它的每个节点的左子树和右子树的高度差不超过1,并且满足二叉搜索树的性质。
注意:空树是满二叉树、平衡二叉树、二叉搜索树、平衡二叉搜索树的特例。
二.二叉树的存储方式
1.链式存储
2.数组存储
三.二叉树的遍历方式
1.深度优先遍历
前序遍历(中左右)
中序遍历(左中右)
后序遍历(左右中)
2.广度优先遍历
层序遍历(队列)
四.二叉树的定义
struct TreeNode{
int val;
TreeNode*left;
TreeNode*right;
TreeNode(){
val=0;
left=nullptr;
right=nullptr;
}
TreeNode(int _val){
val=_val;
left=nullptr;
right=nullptr;
}
}
五.总结
- 1.涉及二叉树的问题,首先仔细审题,判断遍历顺序
- 2.其次根据思路写出伪代码
- 3.根据伪代码进行修改