二叉树c语言实现完整代码 二叉树c语言实现完整代码有菜单栏

weijier 2024-04-05 2 views 0

扫一扫用手机浏览

文章目录 [+]

大家好,今天小编关注到一个比较意思的话题,就是关于二叉树c语言实现完整代码问题,于是小编就整理了4个相关介绍二叉树c语言实现完整代码的解答,让我们一起看看吧。

二叉树c语言实现完整代码 二叉树c语言实现完整代码有菜单栏
图片来源网络,侵删)
  1. c语言遍历二叉树的代码?
  2. 深度为多少?二叉树有12个节点?
  3. 按照二叉树的定义,具有3个结点的二叉树有( )种。A)3 B)4 C)5 D)6?
  4. 顺序存储的二叉树是如何创建和遍历的?

c语言遍历二叉树的代码?

1.t = malloc(sizeof(tree));

2.t->rchild =createTree();

3.void qianxu(tree *t)

4.zhongxu(t->lchild );//再读左子树

二叉树c语言实现完整代码 二叉树c语言实现完整代码有菜单栏
(图片来源网络,侵删)

printf("%c",t->data);//先读根结点

zhongxu(t->rchild );//再读右子树

5.houxu(t->lchild );//再读左子树

houxu(t->rchild );//再读右子树

二叉树c语言实现完整代码 二叉树c语言实现完整代码有菜单栏
(图片来源网络,侵删)

printf("%c",t->data);//先读根结点

6.return 0;

深度为多少?二叉树有12个节点

深度为[7,11]。由于二叉树只有2个叶子节点,所以度为0的节点N0 = 2,由二叉树的定理可知度为2的节点N2= N0 - 1,所以N2 = 1。度为1的节点N1 = 12(总节点数) - N0 - N2 = 9。由此可知二叉树度为2的结点只有1个,因此当根节点的度为2,左右子树的深度为5和6时,整个二叉树的深度最浅为7,根节点的左右子树深度为10和1时,二叉树的深度最深为11。调整左右子树的深度即可让二叉树的深度位于7~11之间。

按照二叉树的定义,具有3个结点的二叉树有( )种。A)3 B)4 C)5 D)6?

我选D

因为

设三个结点a,b,c

a做根结点,有两种,a上,b左,c右,a上,c左,b右

b做根结点,有两种,b上,a左,c右,b上,c左,a右

c做根结点,有两种,c上,b左,a右,c上,a左,b右

顺序存储的二叉树是如何创建和遍历的?

一、首先,简单介绍一下什么是“二叉树”

二叉树是n个结点的有限***,它的定义具有递归性:

(1)当n=0时,为空树;

(2)当n=1时,只有一个结点,该节点称为根结点;

(3)当n>1时,除了根结点外的其他节点可分为互不相交的两个子集,称为左右子树,且左右子树本质上也都是二叉树。


图1 二叉树

根据二叉树的结构和定义,可总结出二叉树的特点:

(1)非空二叉树的第i层最多有2∧(i-1)个结点;

(2)深度为k的二叉树最多有2∧k-1个结点

二叉树是非线性的结构,其每个结点最多有一个“前驱”,但可以有多个“后继”。它可以***用顺序存储结构链式存储结构

说一下创建,因为底层存储一般选择数组和链表,所以对二叉树有一定的要求,存储完全二叉树选择数组存储,比较节省空间,而且通过下标可以快速访问元素;非完全二叉树使用数组存储会有很多空洞,可以选择链表,用指针来指向左右节点。

对于一棵完全二叉树,为了便于计算和记忆,我们需要申请一个内存空间是树的元素数量+1的内存地址,比如需要建一个10个元素的树,则需要申请11个长度的内存空间。将树的根节点存储在下标为1的位置,浪费下标为0的位置,便于寻找时少做一次算数运算

因此,数组下标为1的位置存储根节点,推断就是对于下标 i,下标 2*i 的位置存储左子节点,下标 2*i + 1 存储右子节点,i/2 存储父节点。

借王争老师的图,比如完全二叉树

存储过程就是下标为1的位置存储根节点A,那根据公式 2*i = 2*1 = 2 的位置存储左子节点B,2*i + 1 = 2*1 +1 = 3 的位置存储右子节点C,根据下标依次推断即可。遍历的话就简单了,只需要知道根节点位置,而根节点一般选择下标1,都是明确的位置。

到此,以上就是小编对于二叉树c语言实现完整代码的问题就介绍到这了,希望介绍关于二叉树c语言实现完整代码的4点解答对大家有用。

相关文章

python编写简单代码 python简单编程代码

大家好,今天小编关注到一个比较有意思的话题,就是关于python编写简单代码的问题,于是小编就整理了3个相关介绍python编写简...

编程代码 2024-04-05 阅读1 评论0

编写html代码 编写HTML代码

大家好,今天小编关注到一个比较有意思的话题,就是关于编写html代码的问题,于是小编就整理了3个相关介绍编写html代码的解答,让...

编程代码 2024-04-05 阅读2 评论0
浙ICP备2023031348号-7