二叉树总结

本文详细介绍了树的定义,特别是二叉树的概念,包括满二叉树和完全二叉树。同时,讲解了二叉搜索树的性质,并深入探讨了堆的数据结构,包括向下和向上重排操作。接着,文章详述了二叉树的前序、中序、后序遍历方法,包括递归和迭代实现。最后,提到了二叉树遍历在构建排序双向链表问题中的应用。
摘要由CSDN通过智能技术生成

树的定义

树状图是一种数据结构,它是由 n ( n ≥ 1 ) n(n\ge1) n(n1) 个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:

  1. 每个结点有零个或多个子结点;
  2. 没有父结点的结点称为根结点;
  3. 每一个非根结点有且只有一个父结点;
  4. 除了根结点外,每个子结点可以分为多个不相交的子树。

引自百度百科

二叉树

在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树” ( l e f t    s u b t r e e ) (left \;subtree) (leftsubtree)和“右子树” ( r i g h t    s u b t r e e ) (right \;subtree) (rightsubtree)。二叉树常被用于实现二叉查找树和二叉堆。
一棵深度为k,且有 2 k − 1 2^k-1 2k1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点,则此二叉树为完全二叉树。具有 n n n 个结点的完全二叉树的深度为 f l o o r ( l o g 2 n ) + 1 floor(log_2 n)+1 floor(log2n)+1。深度为 k k k 的完全二叉树,至少有 2 k − 1 {2^{k-1}} 2k1 个叶子结点,至多有 2 k − 1 {2^k-1} 2k1 个结点。
引自百度百科

简单的二叉树定义

 public class TreeNode {
   
 	int val;
 	TreeNode left;
	TreeNode right;
 	TreeNode(int x) {
    
 		val = x; 
 	}
}

二叉搜索树

二叉查找树 ( B i n a r y    S e a r c h    T r e e ) (Binary \;Search\; Tree) (BinarySearchTree) ( ( (又:二叉搜索树,二叉排序树 ) ) )它或者是一棵空树,或者是具有下列性质的二叉树:

  • 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  • 它的左、右子树也分别为二叉排序树。

引自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值