2025-11-30 03:01:58
普通树分两种,一种是满的,叶子全在底下一层;另一种是部分满的,叶子可能在相邻两层。前一种像金字塔,后一种像树杈分叉,实际用的时候更灵活些。
因为普通树分形态主要是看叶子分布,满二叉树要求所有叶子都在一层,完全二叉树允许叶子在两层且靠右分布。根据《算法导论》数据,满二叉树节点数n=2^h(h为高度),完全二叉树高度h≈log2n。比如10个节点,满二叉树高度4层,完全二叉树高度4层但结构更松散。实际开发中,满二叉树常用于堆结构,完全二叉树多用于数据库索引。刚才说的两种形态,其实是满二叉树和完全二叉树,但普通人叫法不同,可能把完全二叉树也算作普通树的一种。不过严格来说,普通树不特指形态,更多是二叉树和普通树的区别。刚才说两种形态,其实是按叶子分布说的,就像苹果树和橘子树一样,都是树但有不同特点。
本题链接: