数据结构之二叉树(1)二叉树基本知识

本栏目是自己在学习代码随想录二叉树做的总结,部分内容来自网站 https://programmercarl.com/ (代码随想录)

1 二叉树基本知识

1.1 二叉树定义:


一个简单的二叉树定义如上,一个父节点,两个子节点,左边成为左节点,右边成为右节点,最上面的节点称为为根节点,没有子节点的节点成为叶子节点

1.2 二叉树分类

(1)满二叉树

除最后一层外,所有的节点都有两个子节点


一个满二叉树
(2)完全二叉树

满二叉树最后一层从右往左删除若干节点


一个完全二叉树
(3)搜索二叉树

二叉树的左节点比根节点小且右节点比根节点大
搜索二叉树一个特点是中序遍历是有序数组,下一节介绍二叉树遍历的内容

(4)平衡二叉树

左右两棵子树的高度小于1

1.3 二叉树的代码表示

(1)链表表示法

class TreeNode {
public:
    int val;
    TreeNode *left;
    TreeNode *right;

    TreeNode(int val) : val(val), left(nullptr), right(nullptr) {}
    TreeNode(int val, TreeNode *left, TreeNode *right) : val(val), left(left), right(right) {}
};

(2)数组表示法

二叉树可以使用数组表示,从索引1开始存,左节点索引2*i+1,右节点索引2*i+2

下一节,二叉树的遍历

posted @ 2022-01-07 13:38  MicroDeLe  阅读(177)  评论(0编辑  收藏  举报