二叉树的创建与访问算法的设计从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。【基本要求】实现以下基本操作:(1

绿油子_dd2022-10-04 11:39:541条回答

二叉树的创建与访问算法的设计
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
(1) 从键盘输入二叉树的元素,建立二叉树。
(2) 实现二叉树的后序遍历算法。

已提交,审核后显示!提交回复

共1条回复
romesky 共回答了19个问题 | 采纳率89.5%
Node{
Node* left;
Node* right;
int value;
};
void traverse(Node* tree)
{
if( !tree) return;
traverse(tree->left);
traverse(tree->right);
// do something here on tree->value -> e.g.
printf("%dn", tree->value);
}
Finish entering tree elements by yourself.
1年前

相关推荐

在计算机程序中,二叉树是一种表示数据结构的方法,-层二叉树的结点总数为1;二层二叉树的结点的数
在计算机程序中,二叉树是一种表示数据结构的方法,-层二叉树的结点总数为1;二层二叉树的结点的数
为3;三层二叉树的结点总数为7…,照此规律,七层二叉树的结点数?求过程
ss王川1年前1
想青 共回答了18个问题 | 采纳率100%
2^n-1
七层就是2^7-1=127
已知完全二叉树有80个结点,则该二叉树有多少个叶子结点
理想与ff1年前1
攀上我 共回答了15个问题 | 采纳率100%
2^6 < 80 < 2^7 => 这是一棵深度为7的完全二叉树
也就是一棵深度为6的满二叉树,再加上第7层的14个叶子结点
简单画一下图,第6层有32个结点:左边的7个结点都有子节点,度为2;右边的25个结点都是叶子结点
总共有39个叶子结点
数据结构试题设一棵三叉树中有50个度数为0的结点,21个度数为2的结点,则该二叉树中度数为3的结点数有______个.
数据结构试题
设一棵三叉树中有50个度数为0的结点,21个度数为2的结点,则该二叉树中度数为3的结点数有______个. 写上过程 谢谢
love头文字D1年前1
陶淘 共回答了15个问题 | 采纳率80%
答案是 度数为3的结点有14个.
假设:
三叉树中度为3的结点x个,度为2的结点y个,度为1的结点z个,度为0的结点m个,总结点数sum sum = x+y+z+m
从另外一个角度看,除了根节点,树的每个结点上方都关联一个分支,
所以总结点数sum=分支数+1= 3x+2y+z+1(因为度数为3的结点有3个分支,度数为2的结点有2个分支,以此类推)
即 x+y+z+m= 3x+2y+z+1,消去等式两边的z,整理得 x+y+m= 3x+2y+1,将题目中已知条件带入(y=21,m=50),求得x=14
一棵树转换成二叉树后,这棵二叉树的根结点一定没有
奔腾蚂蚁1年前1
herowang1981 共回答了16个问题 | 采纳率81.3%
根结点一定没有右子树,因为右边的是兄弟,而一棵树中的根是没有兄弟的,除非是在森林中
如果一棵二叉树结点的前序序列是A、B、C,后序序列是C、B、A,则该二叉树结点的对称序 序列?
如果一棵二叉树结点的前序序列是A、B、C,后序序列是C、B、A,则该二叉树结点的对称序 序列?
1.必为A、B、C
2.必为A、C、B
3.必为B、C、A
4.不能确定
cjf3061年前1
伊梅尔达的兔子 共回答了21个问题 | 采纳率85.7%
选择4不能确定.因为至少有如下两种情况符合条件:
1.A(根)、B(左,第二层)、C(左,第三层)
2.A(根)、B(左,第二层)、C(右,第三层)
此时1的对称序为CBA,而2的对称序为BCA
一道数据结构的题二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG .该二叉树根的右子树
一道数据结构的题
二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG .该二叉树根的右子树的根是:
bnmyn_01年前1
wcdsy 共回答了21个问题 | 采纳率95.2%
有先序可在,树根为E;
此时由中序可知,做子树节点HFI,右子树节点JKG
有先序FHI和中序HFI可知,左子树根为F,F两边的H和I分别为其左孩子和有孩子,所以左子树为
F
H I
同理,右子树为:
G
J
K
此二叉树为
E
F G
H I J
K
已知一棵二叉树的后根序列为EDCBIHGKJFA,中根序列为BECDAIGHFKJ试画出这棵二叉树,并写出它的先根序列,
已知一棵二叉树的后根序列为EDCBIHGKJFA,中根序列为BECDAIGHFKJ试画出这棵二叉树,并写出它的先根序列,并将其转化为森林.
风云ee1年前0
共回答了个问题 | 采纳率
试写出如图所示的二叉树分别按先序、中序、后序遍历时得到的结点序列
johnson12341年前1
viking1020 共回答了16个问题 | 采纳率81.3%
前序:ABDFJGKCEHILM
中序:BFJDGKACHELIM
后序:JFKGDBHLMIECA
设计一个算法,找出二叉树上任意两个结点的最近共同父结点.
设计一个算法,找出二叉树上任意两个结点的最近共同父结点.
设计一个算法,找出二叉树上任意两个结点的最近共同父结点.复杂度如果是O(n2)则不得分.
南山咖啡1年前1
gsdoll 共回答了19个问题 | 采纳率84.2%
从任意一个节点开始遍历父节点直到根节点并保存到数组中 再从第二个节点开始遍历直到根节点,每遍历一个与上面得到的数组中元素比较 第一个一样的就是最近共同父节点 复杂度o(n)
采纳哦
二叉树结点的算法一颗二叉树中共有70个子叶结点与80个度为1的结点,则该二叉树中的总结点数为?
dengsn1年前1
fenqishihou 共回答了19个问题 | 采纳率84.2%
一个结点的度是指该结点的子树个数.
度为1就是指只有1个子树(左子树或者右子树).
度为2的结点个数=叶结点个数-1=69
该二叉树的总结点数=70+80+69=219
设计算法,统计二叉树中等于给定值x的结点个数,统计值由K带回,不需要具体程序,只要算法,
Sheilazou1年前1
遁离ff 共回答了17个问题 | 采纳率82.4%
采用深度优先的示例:(广度优先不妨自己试试)
void countl(bitreptrr, datatype x, int& k)
{
x09if(!bitreptrr) return ;
x09if(bitreptrr->value==x){k++;}
x09countl((bitreptrr->left, x, k);
x09countl((bitreptrr->right, x, k);
}
是否可以解决您的问题?
深度为K的二叉树中结点总数≤2k-1()
常慈忍1年前1
44mmm 共回答了20个问题 | 采纳率95%
正确
5. 高度为4的二叉树中,结点数最多为_________,最少为_______________.
獭猫咪1年前3
七夕夜雨 共回答了29个问题 | 采纳率93.1%
举例子 3层高的(k=3) 二叉树
O O
O O O O
O MIN:2^(k-1)=4 OOOO MAX:(2^k )-1 =7
假定一棵二叉树的结点为97,则它的最小高度为
假定一棵二叉树的结点为97,则它的最小高度为
怎么算的
micky_0390swj1年前1
天笑我自言 共回答了21个问题 | 采纳率95.2%
按满二叉树算,应该是7
如果一个二叉树拥有16个结点,那么数的最小高度为
rr20001年前1
yang19840305 共回答了14个问题 | 采纳率85.7%
5
int(log2(16+1))
二叉树结点总数计算 看到书上一句话写的是,深度为m的二叉树总计最多有2^(m-1)个结点,最少有m个结点.我觉得总计结点
二叉树结点总数计算 看到书上一句话写的是,深度为m的二叉树总计最多有2^(m-1)个结点,最少有m个结点.我觉得总计结点是每一层的结点数加起来,比如深度为四的满二叉树,一共有15个结点.但书上说的2^m-1好像是第m层最多的结点 数,即便它的意思是算第m层最多的结点,那最少的结点也应该是1啊?总之不理解,求大神指导
LKG20081年前1
葬于零度 共回答了17个问题 | 采纳率82.4%
最多:1+2+2^2+2^3+……+2^(m-1)=2^m-1个;
最少:m个
单论第m层,最多2^(m-1),最少一个.
前序A,B,C,D,E,F,G ;中序C,B,D,A,E,G,F,画出该二叉树,给出后序序列
巩固12341年前1
ljj_snow 共回答了21个问题 | 采纳率85.7%
应该这样:
A
/
B E
/
C D F
/
G
后序遍历:
CDBGFEA
设一棵二叉树的前序序列为ABC,则有__种不同的二叉树可以得到这种序列
夜郎0011年前1
ayszh 共回答了7个问题 | 采纳率100%
这就是问同一种前序序列,可以有多少种不同形态的二叉树,3个结点的结果是5种
若二叉树中有5个叶结点,有6个度为1的结点,则该二叉数总的结点数为多少大神们帮帮忙
得道未成仙ZQX1年前1
kanxue2641 共回答了22个问题 | 采纳率95.5%
是这样的吧,有5个叶子节点,那么肯定有5个和叶子借点相联的节点,这就10个了,然后有5个度为1的节点,现在多加一个放在第三层(放五个叶子借点放在第四层),现在有还差1个度为1的节点,也没有多余的叶子借点,所以将第三层的4个节点分别连成两个有2个子节点的,剩下一个直接连一个第二层节点,最后继续第一层将第二层两个节点相联,单独那个节点继续相联,由于如果继续加的话,度为1的子节点就多了,所以将单个树提高一层,相联,就构成了题目要求的树,如图:
如何写算法求二叉树中某个结点的深度(大概思路)
sundy丹1年前1
lzm1945197 共回答了12个问题 | 采纳率83.3%
1,可以用递归方法,
2,先根遍历
3,递归函数,增加形参,记录当前的根的层.
4,找到和结点对应的记录值 .
5,返回结点层数
伪代码如下:
// T结点,L当前层,value,结点值
//返回-1:没有找到,0-n:对应层
int get_node_layer(T *node,int value ,int L)
{int i=-1;
if(node)
{
if(node->value ==value)
return L;
if(i = get_node_layer(node->left,value ,L+1)!=-1) //查左子树,如找到就返回
return i; /
if(i = get_node_layer(node->right,value ,L+1)!=-1)//查右子树,如找到就返回
return i;
}
return i;
}
设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为
设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为
A)12
B)13
C)14
D)15
王小aa1年前1
sn0019 共回答了24个问题 | 采纳率83.3%
选c 子叶节点是度为零的节点,而二叉树的性质可知,度是0的节点比度是2的节点数多1个,所以度是2的节点为2个,所以共有3+8+2=13
由a b c三个结点构成的二叉树 共多少种不同结构
由a b c三个结点构成的二叉树 共多少种不同结构
谢谢 不是5
向左走19791年前1
nyquest 共回答了23个问题 | 采纳率82.6%
如果是说结构的话,应该是5种没错!如果不是5的话那么应该a b c 是二叉树的值 问你可以构成几个不同值的数,这个问题的答案是12
关于二叉树的一道证明题一棵二叉树的所有终端节点在前序序列、中序序列以及后序序列中都按相同的相对位置出现.(这种证明题怎么
关于二叉树的一道证明题
一棵二叉树的所有终端节点在前序序列、中序序列以及后序序列中都按相同的相对位置出现.
(这种证明题怎么写啊?伤脑筋呃,呵呵)
加州烟管1年前1
ghosthyl 共回答了21个问题 | 采纳率85.7%
应该使用反证法,假设节点以不同的相对位置出现,按推理后可知构不成一棵二叉树,所以得出 一棵二叉树的节点出现的位置应处于相同的相对位置
某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为
某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为
A.DCBA B.BDCA C.ABCD D.BADC 我知道答案,但不理解求讲解
holyy1年前1
cm154 共回答了12个问题 | 采纳率91.7%
中序是左根右的遍历 后序是左右根的遍历 树的形式:
A
/
B

C
/
D
那么前序就是ABCD
全靠手打 望采纳
在一棵二叉树中,叶子结点共有30个,度为1的结点共有40个,则该二叉树中的总结点数共有( )个.
在一棵二叉树中,叶子结点共有30个,度为1的结点共有40个,则该二叉树中的总结点数共有( )个.
A)89
B)93
C)99
D)100
zykt4181年前1
muir 共回答了20个问题 | 采纳率80%
叶子结点的度为0,设叶子借你点为n0,度为1的结点的个数为n1,度为2的结点个数为n2,根据n0+n1+n2=n1+2*n2+1;可以算出,n0=n2+1;n2=n0-1=29;总结点数n=n0+n1+n2=30+40+29=99
16个结点可构造出多少种不同形态的二叉树?
16个结点可构造出多少种不同形态的二叉树?
希望有详细过程
condition_1年前1
暖暖_飞 共回答了12个问题 | 采纳率91.7%
(2n)*(2n-1)*.*(n+1)/(n+1)!
一棵度为2的树与一棵二叉树有何区别?
dushushu1年前1
ím竹夭 共回答了10个问题 | 采纳率100%
树是有根结点和若干颗子树构成的
一个结点所拥有后件的个数称为结点的度
所有结点中最大的度就是树的度
树的层次是树的深度
度为2的树:树的最大结点的度为2
二叉树:不存在度大于2的结点.五种基本形态:空二叉树,仅有根节点的二叉树,左子树为空的二叉树,右子树为空的二叉树,左右子树均不为空的二叉数
二者不等同
一道关于二叉树的选择题在下列情况中,可称为二叉树的是() A.每个结点至多有两颗子树的树 B.哈夫曼树 C.每个结点至多
一道关于二叉树的选择题
在下列情况中,可称为二叉树的是() A.每个结点至多有两颗子树的树 B.哈夫曼树 C.每个结点至多有两颗子树的有序树 D.每个结点只有一颗右子树 E.以上答案都不对
请问ACD为什么错啊?
兜兜的卷心菜1年前1
逍遥的浪子 共回答了25个问题 | 采纳率96%
二叉树定义:二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成.
注意,如果子树是两棵那就要求两棵子树不相交,AB都存在这个问题不选;同时二叉树要求是有序的,D不能满足这个要求也不选;哈夫曼树就是按二叉树构造出来的,必须是二叉树
已知二叉树有50个叶子结点,且仅有一个孩子的结点数为30个 则总结点数是多少呢
52三毛1年前1
四季下雨 共回答了14个问题 | 采纳率85.7%
假设ni表示二叉树中度为i的结点的数量,n0=50,n1=30.
根据二叉树的性质有n0=n2+1,则n2=n0-1=49.
n=n0+n1+n2=50+30+49=129.
一个高度为h 的二叉树最小元素数目是( ).
wenjunhj1年前1
4343421jc 共回答了27个问题 | 采纳率96.3%
h,每层一个
求二叉树高度一棵n个节点的树,其中所有分支节点的度均为m,求树中叶子节点的数目,写出步骤和自己的思路.这个是一个简答题,
求二叉树高度
一棵n个节点的树,其中所有分支节点的度均为m,求树中叶子节点的数目,
写出步骤和自己的思路.
这个是一个简答题,不是程序设计的题目.但是希望能附上C或C++的代码
千山丫丫1年前1
主演洗面奶 共回答了24个问题 | 采纳率95.8%
公式:V0=(V2) +2( V3)+3 (V4).(k-1)(Vk)+1 所有的树都满足这个公式,其中v0...vk代表 度为0...K的节点个数.
所有计算度与节点个数的问题无论是几叉树的都必须用这个式子,我建议楼主哥哥记住!
叶子节点就是度为0的节点V0,其他的分支节点度都为m那么就只存在度为0和度为m的节点
代入上面公式:
V0=(m-1)Vm+1
又因为:
Vm+V0=n //因为树总共n个节点
解这个方程组,就得 V0=((m-1)n+1)/m
用计算机计算 ,你可以将它理解成一个层序遍历的过程,使用队列来遍历:
存储结构是
typedef struct Node
{
int data;
struct node *FirstChild;
struct node *NextBrother;
}*Tree;
static int leafnum; //全局函数用于计数叶子节点
void BFSCount(Tree t)
{
int i=0;
SeqQueue *Q;
TreeNode *p;
InitQueue(Q);
if(t==NULL) return;
EnterQueue(Q,t);
While(!Empty(Q))
{
DeleteQueue(Q,p); //出队 然后判断这个节点
if(p->FirstChild==NULL) leafnum++; //如果这个节点一个孩子也没有,则是叶子,计数+1
else{
p=t->FirstChild; //否则开始将它第一个孩子继续进入队
EnterQueue(Q,p);
while(iNextBrother;
EnterQueue(Q,p);
}
}
}
}
完全二叉树的高度一棵n个节点的完全二叉树,则二叉树的高度h为多少?有些书上说高度从0开始算有些说从1开始算到底怎么回事?
wanwqhqsl1年前1
牧羊犬和小猫咪 共回答了21个问题 | 采纳率100%
2的(h-1)次方 小于n
2的h次方 大于等于n
所以 h=log 2为低 n的对数
霍夫曼算法求扩充二叉树的带权外部路径长度
霍夫曼算法求扩充二叉树的带权外部路径长度
对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长度是多少?
怎么算,请解释得具体一点.
honey112291年前1
吴斌 共回答了23个问题 | 采纳率95.7%
每行选出最小的两个数相加
10 12 16 21 30
16 21 22 30
22 30 37
37 52
89
将较小的数排在左子树,则其扩充的二叉树即为:
89
/
37 52
/ /
16 21 22 30
/
10 12
由图可看出所有的权都在最外部,所以扩充二叉树的带权外部路径长度为:
16*2+21*2+30*2+10*3+12*3=200.
已知二叉树的后序遍历序列和中序遍历序列,怎样求其前序遍历序列!
已知二叉树的后序遍历序列和中序遍历序列,怎样求其前序遍历序列!
举个例子,
捻月为盟1年前1
Maria_wu 共回答了17个问题 | 采纳率88.2%
首先理解概念:
前序遍历:访问根结点的操作发生在遍历其左右子树之前.
中序遍历:访问根结点的操作发生在遍历其左右子树之中(间).
后序遍历:访问根结点的操作发生在遍历其左右子树之后.
eg:后序遍历为DBCEFGHA,中序遍历为EDCBAHFG,求前序遍历(网上例子)
首先 看后序遍历DBCEFGHA,A为总根节点
然后 寻找中序遍历EDCBAHFG中A位置,则EDCB在A的左枝,HFG在A的右枝;
重复前两步,从后序遍历最后一位找,在中序遍历寻找对应点,得出左右分枝...
最后得到AECDBHGF,再自己验证即可...
含4个度为2的结点和5个叶子结点的二叉树可能有()结点
magic_esp1年前1
大象与猩猩 共回答了13个问题 | 采纳率92.3%
9个
中序与后序确定二叉树已知先序与中序 后序于中序 先序与后序 分别是否可以确定一棵二叉树
aptor9911年前1
焰の马 共回答了20个问题 | 采纳率90%
知道中序 并且知道先序和后序其中之一就能确定一颗二叉树.
例如中序和先序.
前序为 a b d e c
中序为: d b e a c
1.根据先序第一个a知道,二叉树的根节点为a
2.对应中序,知道a左边的都是在a的左子树,右边的在右子树上.
3.dbe在a的左子树上,然后根据前序之后b在这三者的最前面 所以知道b是左子树的根节点
以此类推 得到
a
b c
d e
后序和前序类似,是最后的一个结点确定根节点
呵呵~ 希望能帮得到你
对下图所示的森林,将其转化为二叉树,并写出该二叉树的先根序、中根序和后根序历序列.
滚烫雪花1年前1
czm1688 共回答了29个问题 | 采纳率93.1%
A
B H
E C F NULL
NULL F NULL D NULL J
G NULL K NULL
先 EFBCGDAFKJH
中 ABEFCDGHFJK
后 FEGDCBKJFHA
一棵二叉树中共有70个叶子结点与80个度为一的结点,则该二叉树中的总结点数为?
心爱紫罗兰1年前1
梅子之恋 共回答了23个问题 | 采纳率82.6%
219
在一棵具有n个结点的二叉树中,所有结点的空子树等于n+1是怎么算出来的?
晃点大哼1年前2
ii枷锁 共回答了17个问题 | 采纳率82.4%
我想可以这么考虑,n个结点,每个节点应该有2个孩子结点,一共就是2n个,而除了根节点的其他n-1个结点应该都是一个孩子结点.所以答案是2n-(n-1)=n+1
一颗二叉树有十个节点则至多有几个节点有2个子节点
一颗二叉树有十个节点则至多有几个节点有2个子节点
freepascal语言
beastcjj1年前1
神四 共回答了21个问题 | 采纳率95.2%
思考:有几个子结点对应着该结点的度数就为几,所以可
设度为0的结点数为n0,度为1的结点数为n1,度为2的结点数为n2,由题意:
n0+n1+n2=10
在二叉树中有:n0=n2+1;
所以有2*n2+n1=9;所以n1的值为奇数,最小的值为1
可知n2最大为4.即为最多有4个结点有2个子结点
已知一棵二叉树的中序序列和后序序列,请画出该二叉树 中序序列 DIGJLKBAECHF 后序序列 ILKJGDBEHFC
已知一棵二叉树的中序序列和后序序列,请画出该二叉树 中序序列 DIGJLKBAECHF 后序序列 ILKJGDBEHFCA
偶才素呆呆1年前1
strawring 共回答了22个问题 | 采纳率90.9%
先画出二叉树:
前序为:ABDGIJKLCEHF
将下列树转换为二叉树?(注意:开始是树,请帮忙画出二叉树)
fammer_long1年前0
共回答了个问题 | 采纳率
数据结构的二叉树( × )2.二叉树中每个结点的两棵子树的高度差等于1。 ( √ )8.用二叉链表法(link-rlin
数据结构的二叉树
( × )2.二叉树中每个结点的两棵子树的高度差等于1。
( √ )8.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
(正确。用二叉链表存储包含n个结点的二叉树,结点共有2n个链域。由于二叉树中,除根结点外,每一个结点有且仅有一个双亲,所以只有n-1个结点的链域存放指向非空子女结点的指针,还有n+1个空指针。)即有后继链接的指针仅n-1个。
2. 一棵深度为6的满二叉树有________ 个分支结点和 ________ 个叶子。
注:满二叉树没有度为1的结点,所以分支结点数就是二度结点数。
求解答,为什么,可以的话详细一点。
禾猫1年前1
chuzhenrui 共回答了10个问题 | 采纳率60%
2、这个是平衡二叉树的定义,不是普通二叉树的要求
8、正确
2、设根结点的深度为1
深度为6的满二叉树只有最下一层是叶子,也就是有2^5=32个叶子,相应地,分支都是度为2的结点,有2^5-1 = 31 个
二叉树中叶子结点和结点一样吗?是同一个意思吗?
快乐得冒泡泡1年前1
再也不潜水了 共回答了17个问题 | 采纳率94.1%
不一样的.
一颗二叉树中所有的元素都可成为结点.
一棵树当中没有子结点(即度为0)的结点,称为叶子结点,简称“叶子”. 叶子结点
叶子是指度为0的结点,又称为终端结点.
写出下列二叉树的中序遍历序列
_4151年前1
夺_oo 共回答了12个问题 | 采纳率91.7%
中序是左中右,序列为BDCEAFHG

遍历过程请参考:http://zhidao.baidu.com/question/89674628.html
已知一个二叉树如何画出顺序存贮结构?求思路 实在是不会.
mark_liang1年前1
心纹之阿天 共回答了17个问题 | 采纳率88.2%
用空节点将二叉树补充为完全二叉树,之后自上而下、自左至右将树上的节点填入顺序地址中.
具有N个叶结点二叉树的深度具有N个结点的二叉树的深度为N-1到log2n,那么拥有N个叶结点的二叉树深度如何计算呢?百思
具有N个叶结点二叉树的深度
具有N个结点的二叉树的深度为N-1到log2n,那么拥有N个叶结点的二叉树深度如何计算呢?百思不得其解,
科笔MyLove1年前1
idsqtdl 共回答了23个问题 | 采纳率91.3%
就是N-1
给定一棵用链表表示的二叉树,其根结点指针为t,编写求二叉树的叶子数目的算法。
给定一棵用链表表示的二叉树,其根结点指针为t,编写求二叉树的叶子数目的算法。
算法思想:可以用一个指针栈来实现,且其最大容量为maxsize,二叉树根指针为t,以二叉链表作存储结构。若一个结点的左孩子和右孩子均为空,则为叶子结点,若左或右不为空则进栈,计算栈内元素的个数即为叶子结点数。
qinhai81621年前1
妖精无泪呵 共回答了15个问题 | 采纳率93.3%
将二叉树遍历一边即可
static int count = 0;//记录二叉树叶子节点的个数
struct Node{
int data;
Node *rigthNode;//右孩子
Node *leftNode;//左孩子
};
int fine_Node(Node * t)//Node 表示二叉树节点
{
if(t == Null)
{
return 0;
}
else if((fine_Node(t->rigthNode)+fine_Node(t->leftNode)) != 0)
{
return 1;
}
else
{
count++;
return 1;
}
}
提问:设一棵完全二叉树共有739个结点,则在该二叉树中有几个叶子结点?希望有具体过程.有点烦,算也算不来.
刘周氏1年前1
noisyfff 共回答了25个问题 | 采纳率92%
简便算法:(int)((节点数+1)/2),即(int)(739+1)/2 = 370
标准步骤:
512

大家在问