数据结构--树

 我来答
新科技17
2022-06-07 · TA获得超过5901个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:74.7万
展开全部
          树是由结点或顶点和边组成的(可能是非线性的)且不存在着任何环的一种数据结构。没有结点的树称为空(null或empty)树。一棵非空的树包括一个根结点,还(很可能)有多个附加结点,所有结点构成一个多级分层结构。

树的特点: ①每个节点有零个或多个子节②没有父节点的节点称为根节点;   ③每一个非根节点有且只有一个父节点;   ④除了根节点外,每个子节点可以分为多个不相交的子树;

树结构的名词解释如下:

1、节点:树中的一个独立单元,包含一个数据元素及诺干个指向其他子树的分支。例如,A、B、C等都是节点。

2、节点的度:节点拥有的子树数称为节点的度,例如A的度是3,C的度为0,B的度为3.

3、树的度:树的度是树内各个节点度的最大值,例如,上图中的度为3.

4、叶子:度为0 度节点称为叶子或者终端节点,例如:E、F、K、L、M、H、I、J都是叶子节点。

5、非终端节点:度不为0的节点或者分支节点,除根节点以外的非终端节点也称为内部节点。

6、双亲和孩子:节点的子树的根称为该节点的孩子,相应的该节点称为孩子的双亲,例如:B的双亲是A,B的孩子有E、F、G

7 、兄弟:同一个双亲的孩子节点称为兄弟节点,例如:B、C、D互为兄弟。

8、树的层次:节点的层次从根开始定义起,根为第一层,根的孩子为第二层,树中任何一层次等于双亲节点的层次加1.

9、有序树和无序树: 如果将树的节点的各子树看成从左到右是有序的(即不能互换)则称为该树为有序树;否则是无序树,在有序树中最左边的子树的根称为第一个孩子,最右边的称为最后一个孩子。

10、节点的高度:节点到叶子节点的最长路径(边数)。

11、节点的深度:根节点到这个节点所经历的边的个数。

12、节点的层数: 节点的深度-1。

13、数的高度:根节点的高度。

定义:二叉树 是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。

由二叉树定义以及图示分析得出二叉树有以下特点:

1)每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。

2)左子树和右子树是有顺序的,次序不能任意颠倒。

3)即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。

1)在二叉树的第i层上最多有2i-1个节点 。(i>=1)

2)二叉树中如果深度为k,那么最多有2k-1个节点。(k>=1)

3)n0=n2+1  n0表示度数为0的节点数,n2表示度数为2的节点数。

4)在完全二叉树中,具有n个节点的完全二叉树的深度为[log2n]+1,其中[log2n]是向下取整。

5)若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点有如下特性:

  a. 若 i=1,则该结点是二叉树的根,无双亲, 否则,编号为 [i/2] 的结点为其双亲结点;b. 若 2i>n,则该结点无左孩子,  否则,编号为 2i 的结点为其左孩子结点;c. 若 2i+1>n,则该结点无右孩子结点,  否则,编号为2i+1 的结点为其右孩子结点。

1、 斜树 :所有的结点都只有左子树的二叉树叫左斜树。所有结点都是只有右子树的二叉树叫右斜树。这两者统称为斜树。

2、 满二叉树 :在一棵二叉树中。如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。

3、 完全二叉树 :对一颗具有n个结点的二叉树按层编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。

1顺序存储:(数组)

2链式存储:(链表)

二叉树的遍历 是指从二叉树的根结点出发,按照某种次序依次访问二叉树中的所有结点,使得每个结点被访问一次,且仅被访问一次。

1.前序遍历: 通俗的说就是从二叉树的根结点出发,当第一次到达结点时就输出结点数据,按照 先向左在向右 的方向访问。

输出结果为: ABDHIEJCFG

2.中序遍历: 从二叉树的根结点出发,当第二次到达结点时就输出结点数据,按照先向左在向右的方向访问。

输出结果为: HDIBJEAFCG

3.后序遍历 :从二叉树的根结点出发,当第三次到达结点时就输出结点数据,按照先向左在向右的方向访问。

输出结果为: HIDJEBFGCA

4层序遍历: 按照树的层次自上而下的遍历二叉树。

输出结果为: ABCDEFGHIJ

算法的实现转下一篇。 二叉树的遍历
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式