二叉树及二叉树的应用

本文介绍了二叉树的基本概念,包括叶子节点、根节点、父节点、满二叉树和完全二叉树的定义。重点讲解了二叉树的递归处理方式和遍历方法,如先序、中序和后序遍历。讨论了二叉树的存储结构,如顺序存储和链式存储,以及有序二叉树的特点。最后,提到了二叉树在搜索和查找数据中的应用,以及相关考点,如二叉树深度的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、基本概念

     叶子节点:叶子节点只有父节点没有子节点;

     根节点:起始的节点叫做根节点,整棵树只有一个根节点;

     父节点:除了根节点之外,每个节点都有且只有一个父节点;

     满二叉树:每个枝节点都有两个子节点,则该二叉树叫做满二叉树;

     完全二叉树:二叉树中除了最下面一层之外,每层节点个数均达到最大值,并且最下面一层的节点都连续集中在左侧,则该二叉树叫做完全二叉树;

2、基本特征

     二叉树具有递归嵌套式的空间结构,也就是说对于一棵二叉树来说,可以拆分为若干个小二叉树组成,因此采用递归的方法处理二叉树比较方便,处理方式如下:

   处理(二叉树)

   {

     if(是空树)  直接处理完毕;

     else

     {

         处理根节点;

         处理左子树; => 递归

         处理右子树; => 递归

     }

   }

3、二叉树遍历

     3.1 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 

           遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算的基础。

     3.2 二叉树遍历方式:先序遍历、中序遍历(投影)、后序遍历

           

                             图 3.2 二叉树遍历

 4、存储结构

       4.1 线性(顺序)存储结构

             一般来说,从上到下,从左到右依次存储节点,对于非完全二叉树来说,采用虚节点来补成完全二叉树

            二叉树的顺序存储,就是用一组连续的存储单元存放二叉树中的结点。因此,必须把二叉树的所有结点安排成为一个恰当的序列,结点在这个序列中的相互位置能反映出结点之间的逻辑关系,用编号的方法从树根起,自上层至下层,每层自左至右地给所有结点编号,缺点是有可能对存储空间造成极大的浪费,在最坏的情况下,一个深度为k且只有k个结点的右单支树需要2k-1个结点存储空间。依据二叉树的性质,完全二叉树和满二叉树采用顺序存储比较合适,树中结点的序号可以唯一地反映出结点之间的逻辑关系,这样既能够最大可能地节省存储空间,又可以利用数组元素的下标值确定结点在二叉树中的位置,以及结点之间的关系。图4.1.1(a)是一棵完全二叉树,图4.1.1(b)给出的图4.1.1(a)所示的完全二叉树的顺序存储结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值