数据结构—二叉树相关概念及经典面试题

本文介绍了二叉树的基本概念,包括满二叉树和完全二叉树的定义,以及二叉树的性质。讨论了二叉树的顺序存储和链式存储结构,重点讲解了如何通过递归和非递归方式实现二叉树的各种遍历。同时,文章列举了一系列经典的二叉树面试题,如创建二叉树、判断完全二叉树、求最近公共祖先等。
摘要由CSDN通过智能技术生成

二叉树概念

一棵二叉树是结点的有限集合,该集合或者为空, 或者是由根结点加上两棵分别称为左子树和右子树的二叉树构成

二叉树的特点:

  1. 每个结点最多有两棵子树,即二叉树不存在度大于2的结点
  2. 二叉树的子树有左右之分,其子树的次序不能颠倒

满二叉树、完全二叉树

满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子节点都在同一层上

完全二叉树: 如果一棵具有N个结点的二叉树的结构与满二叉树的前N个 结点的结构相同,称为完全二叉树

二叉树性质

  • 若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有2^{i-1} (i>0)个结点
  • 若规定只有根节点的二叉树的深度为1,则深度为K的二叉树的最大结点数是2^{k}-1 (k>=0)  
  • 对任何一棵二叉树, 如果其叶结点个数为 n0, 度为2的非叶结点个数 为 n2,则有n0=n2+1
  • 具有n个结点的完全二叉树的深度k为\lg (n+1)上取整

对于具有n个结点的完全二叉树,如果按照从上至下从左至右的顺序 对所有节点从0开始编号,则对于序号为i的结点有:

  1. 若i>0,双亲序号:(i-1)/2; 
  2. i=0,i为根节点编号,无双亲结点
  3. 若2i+1<n,左孩子序号:2i+1,否则无左孩子
  4. 若2i+2<n,右孩子序号:2i+2,否则无右孩子 

二叉树存储结构

 二叉树有顺序存储和链式存储结构

顺序存储结构:

对于一棵完全二叉树所有结点按照层序自顶向下,同一层自左向右顺 序编号,就得到一个节点的顺序序列

优点:存储完全二叉树,简单省空间

缺点:存储一般二叉树尤其单支树,存储空间利用不高 

链式存储结构:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值