Skip to main content

  • 树是一种非线性数据结构,用于存储一组有层次关系的元素。
  • 树的元素通过父子关系相互连接,每个元素包含一个值和一个指向子元素的指针。
  • 树有多种类型,包括二叉树、平衡树、B 树、红黑树等。
  • 树的操作包括插入、删除、查找等。

二叉树

二叉树(Binary Tree)是一种树形数据结构,其中每个节点最多有两个子节点,称为左子节点和右子节点。二叉树的子树也是二叉树。

二叉树的节点包含一个值和指向左右子节点的指针。如果一个节点没有子节点,则其指针为空。二叉树的根节点是唯一没有父节点的节点。

二叉树有多种类型,包括满二叉树、完全二叉树、平衡二叉树、二叉搜索树等。

满二叉树(Full Binary Tree)是一种二叉树,其中每个节点都有两个子节点,除了叶子节点。

完全二叉树(Complete Binary Tree)是一种二叉树,其中除了最后一层外,每一层都是满的,并且最后一层的节点都靠左对齐。

平衡二叉树(Balanced Binary Tree)是一种二叉树,其中任意节点的左右子树的高度差不超过 1。

二叉搜索树(Binary Search Tree)是一种二叉树,其中每个节点的左子树的值都小于该节点的值,右子树的值都大于该节点的值。二叉搜索树的中序遍历是一个有序序列。

二叉树的遍历包括前序遍历、中序遍历和后序遍历。前序遍历先访问根节点,然后访问左子树和右子树;中序遍历先访问左子树,然后访问根节点和右子树;后序遍历先访问左子树和右子树,然后访问根节点。

二叉树的时间复杂度取决于树的高度,最坏情况下为 O(n),其中 n 是节点的数量。二叉树的空间复杂度为 O(n),其中 n 是节点的数量。

红黑树