某二叉树共7个节点,其中叶子节点有1个,则二叉树的深度是多少(假设根节点在第一层)

mm她2022-10-04 11:39:541条回答

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

共1条回复
xiaogu10087 共回答了12个问题 | 采纳率100%
共7层,设度为0,1,2的结点个数分别为n0,n1,n2
则n0+n1+n2=7=1+n1+n2*2,那么可得到n0=n2+1,且n0=1,则n2=0,n1=6,二叉树就是一竖列,所以共7层
1年前

相关推荐

若一棵满二叉树上共有7个结点,则该二叉树的深度(高度)应为___________
周哲1101年前1
米奇乖乖 共回答了19个问题 | 采纳率63.2%
满2叉树那么应该是3城;
第一层是1;
第2层是2,第3层是4;
就总共7个
给定表(45,36,56,6,64,32,8,41)按数据元素在表中的次序构造一棵二叉排列树
江南灵蓝1年前0
共回答了个问题 | 采纳率
一棵二叉树叶结点(终端结点)数为5,单分支结点数为2,该树共有______个结点.
yw361年前1
kekoandy 共回答了26个问题 | 采纳率92.3%
不妨设:N0表示终端节点数
N2表示双分支节点数
根据公式:N0=N2+1 则,N2=4
所以:总结点数:5+4+2=11
给定数据序列d={7,16,4,8,20,9,6,18,5},构造一棵二叉排列数,并求出该二叉排列树查找成功的平均查找长
给定数据序列d={7,16,4,8,20,9,6,18,5},构造一棵二叉排列数,并求出该二叉排列树查找成功的平均查找长度
mumuyang1年前1
sony73 共回答了15个问题 | 采纳率93.3%
7
/
4 16
/
6 8 20
/ /
5 9 18
平均查找长度=1*1+2*2+3*3+4*3=26
(第一层一个结点,每个结点比较一次查找成功;第二层两个结点,每个结点比较两次查找成功;第三层三个结点,每个结点比较三次查找成功;第四层三个结点,每个结点比较四次查找成功)
1.具有12个结点的二叉树的二叉链表存储结构中,空链域NULL的个数为( ) A.11 B.13 C.23 D.25
1.具有12个结点的二叉树的二叉链表存储结构中,空链域NULL的个数为( ) A.11 B.13 C.23 D.25
这是一道关于数据结构的问题.
guyunfan1年前1
悠然情思 共回答了21个问题 | 采纳率95.2%
因为每个节点有二个指针域,所以一共有2*12=24个指针域, 因为11个指针域指向节点,而根节点没指针指向,所以是13,有个通试就是n节点有2n-(n-1)=n+1个空指针域
利用逐点插入法建立二叉树利用逐点插入法建立序列(50,72,43,,85,75,20,35,45,65,30)对应的二叉
利用逐点插入法建立二叉树
利用逐点插入法建立序列(50,72,43,,85,75,20,35,45,65,30)对应的二叉树排序以后,查找元素30要进行几次元素间的比较
已知道答案为5次,请给出详细的解答过程
二叉树怎么画,为什么那样画
akey_yung1年前2
晕ss1了 共回答了22个问题 | 采纳率81.8%
二叉树排序目标就是建立一颗二叉树,对于每个节点,其左儿子小于它,右儿子大于它。
逐点插入的话,一开始以50作为根,接下来依次插入。
比如72比50大,作为50的右儿子。
43比50小,作为50的左儿子。
85比50大,但是这时50已经有右儿子75了,所以85与75比较,85比75大,作为75的右儿子。
同理,这样就可以把二叉树建出来了。
而查找30时,因为30比50小,所以往左边走。然后以此类推。。。。
如果还有不明白的可以问我:328880142
加油~
数据结构二叉树问题一个所有非终端结点都有非空的左右子树的二叉树,叶子结点的个数为n,那么二叉树上的结点总数为2n-1,这
数据结构二叉树问题
一个所有非终端结点都有非空的左右子树的二叉树,叶子结点的个数为n,那么二叉树上的结点总数为2n-1,这里二叉树上的节点总数为什么是2n-1?这道题的2n-1是算出来的还是说这是一个二叉树的性质或定理?
木丁一1年前1
qq艳阳天 共回答了22个问题 | 采纳率100%
这是根据所描述的树的性质算出来的啊
思想:根据他的描述,意思就是在这颗树中,对于所有的节点,它要么有两个孩子节点,要么没有子节点。可以利用树中的枝条(就是连接两个节点之间的直线)数目规律算出来。枝条数目=总节点-1=非叶子节点*2 ----①
设总节点数目为x,那么有
总节点数:x
叶子节点:n
非叶子节点:x-n
所以①可以转化为等式:
x-1=(x-n)*2
所以x=2n-1
谢谢采纳
某二叉树共7个结点,其中叶子结点1个,则二叉树的深度为(假设根结点在第一层)
蝴颜乱羽0071年前1
苏家十三少 共回答了14个问题 | 采纳率100%
叶子节点就是度为0的结点,比度为2的结点多一个,即度2的没有,这样度为1的结点就是6个,故深度为7(1度就是结点连着1个子树,二叉树最多俩子树,即左右子树)
12.在计算机程序中,二叉树是一种表示数据结构的方法.如图,一层二叉树的结点总数为1,二层二叉树的结点总数为3,三层二叉
12.在计算机程序中,二叉树是一种表示数据结构的方法.如图,一层二叉树的结点总数为1,二层二叉树的结点总数为3,三层二叉树的结点总数为7,…,照此规律,七层二叉树的结点总数为
A.63 B.64 C.127 D.128
15.如图,正方形ABCD的边长为1cm,E、F分别是BC、CD的中点,连接BF、DE,则图中阴影部分的面积是______ cm2.
16.如图,⊙O的直径AB与弦EF相交于点P,交角为45°,若PE2+PF2=8,则AB等于 .
12题要规律的公式最好解释过程
15.16题要思路过程
下面是图
依水飘零1年前1
汉武ff2006 共回答了22个问题 | 采纳率81.8%
设甲车间原有x人,则乙车间原有3/5x人.(x-90):(3/5x+90)=2:3 3x-270=6/5x+180 9/5x=450 x=250甲车间:250人乙车间:250*3/5=150(人)...
数据结构二叉树度的问题度的概念是结点含有的子树个数,是指一个结点的分支数么?比如说根节点有两个分支所以度是2如下这个二叉
数据结构二叉树度的问题
度的概念是结点含有的子树个数,是指一个结点的分支数么?比如说根节点有两个分支所以度是2
如下这个二叉树,n0表示度为0的结点个数应该是叶结点数1,n2是度为2的结点个数应该是5,那不成立啊?

应该是概念不清问题,

已经解决 突然意识到叶结点是6个.贻笑大方了
东成西就1231年前1
823824 共回答了15个问题 | 采纳率73.3%
度的概念是结点含有的子树个数,是指一个结点的分支数,上面这棵二叉树,n0表示度为0的结点个数应该是叶结点数6,n2是度为2的结点个数应该是5,所以有n0=n2+1
二叉树的后续序列为DCEGBFHKJIA,中序序列为DCBGEAHFIJK,试建立这颗二叉树,画出该二叉树的先序线索二叉
二叉树的后续序列为DCEGBFHKJIA,中序序列为DCBGEAHFIJK,试建立这颗二叉树,画出该二叉树的先序线索二叉数
痞子鱼h1年前1
雪飘无迹 共回答了22个问题 | 采纳率90.9%
//第二个多了个I,我写了个程序,并假设第二个序列没有I
#include
#include
struct node{
char c;
node *left;
node *right;
};
int depth=0;
int lengthFunc(char *string);
int lengthLeftFunc(char *string,char ref);
node *makeTree(char *string1,char *string2);
void printTree(node *newNode);
void destroyTree(node* newNode);
void main()
{
node *top=0;
char string1[]="DCBGEAHFJK";
char string2[]="DCEGBFHKJA";
top=makeTree(string1,string2);
printTree(top);
destroyTree(top);
}
int lengthFunc(char *string)
{
for(int i=0;string[i]!=' ';i++);
return i;
}
int lengthLeftFunc(char *string,char ref)
{
for(int i=0;string[i]!=ref;i++);
return i;
}
node *makeTree(char *string1,char *string2)
{
int length=lengthFunc(string1);
if(length==0)
return (node*)0;
node *newNode=(node*)malloc(sizeof(node));
newNode->c=string2[length-1];
int lengthLeft=lengthLeftFunc(string1,newNode->c);
int lengthRight=length-lengthLeft-1;
char *stringLeft1=(char*)malloc(sizeof(char)*(lengthLeft+1));
char *stringLeft2=(char*)malloc(sizeof(char)*(lengthLeft+1));
char *stringRight1=(char*)malloc(sizeof(char)*(lengthRight+1));
char *stringRight2=(char*)malloc(sizeof(char)*(lengthRight+1));
if(lengthLeft!=0){
for(int i=0;istringLeft1[i]=string1[i];
stringLeft2[i]=string2[i];
}
stringLeft1[i]=stringLeft2[i]=(char)0;
newNode->left=makeTree(stringLeft1,stringLeft2);
}
else
newNode->left=0;
if(lengthRight!=0){
for(int i=0;istringRight1[i]=string1[lengthLeft+1+i];
stringRight2[i]=string2[lengthLeft+i];
}
stringRight1[i]=stringRight2[i]=(char)0;
newNode->right=makeTree(stringRight1,stringRight2);
}
else
newNode->right=0;
free(stringLeft1);free(stringLeft2);free(stringRight1);free(stringRight2);
return newNode;
}
void printTree(node *newNode)
{
if(newNode==0)
return;
depth++;
printTree(newNode->left);
depth--;
for(int i=0;icout<<'t';
cout<c<depth++;
printTree(newNode->right);
depth--;
}
void destroyTree(node* newNode)
{
if(newNode==0)
return;
if(newNode->left!=0)
destroyTree(newNode->left);
if(newNode->right!=0)
destroyTree(newNode->right);
free(newNode);
newNode=0;
}
//按照假设,如果输入序列无I,则输出结果如图.
如果还没解决你的问题,可以加我百度HI账号.
一个完全二叉树,若编号为40的结点有右子结点,则这棵完全二叉书至少有多少结点?
bqzf31年前1
田云0016 共回答了27个问题 | 采纳率88.9%
因完全二叉树: 某一层的结点数据为2^n, n 代表从树根开始的层次编号, 树根层次为0.
2^5 = 32;
2^6 = 64;
40 > 32 && 40 < 64;
所以编号为40的结点一定在第6层次上, 又因其有右子结点.
至少要再增加一层, 这棵树至少有7层.
所以这棵的所有结点 = 2^0 + 2^1 +... + 2^7 = 2^8 - 1 =128 -1 = 127;
2010年9月三级数据库13题(13)对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉
2010年9月三级数据库13题
(13)对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长度
lwenje1年前1
紫貂花 共回答了13个问题 | 采纳率100%
霍夫曼算法使用贪心法,先对数据按权值排序:
10 12 16 21 30 选取权值最小的两个得 10+12=22
16 21 22 30 同上,得 16+21=37
22 30 37 同上,得 22+30=52
37 52 同上,得 37+52=89
画出该二叉树知,其带权路径长为:10×3 + 12×3 + 16×2 + 21×2 +30×2 = 200
在一棵二叉树上第5层的结点数最多是______.
千寻之爱1年前1
gengjiande 共回答了21个问题 | 采纳率95.2%
第1层1个 2^0
第2层2个 2^1
第3层4个 2^2
第n层 2^(n-1)
//就是2的层数-1次方.
在一棵二叉树上第5层的结点数最多是多少
bobywp_1年前1
行人过客吕 共回答了20个问题 | 采纳率70%
一棵二叉树,如果每个结点都是是满的,那么会满足2^(k-1)1.
所以第5层至多有2^(5-1)=16个结点!
前序遍历序列:D,A,C,E,B,H,F,G,I; 中序遍历序列:D,C,B,E,H,A,G,I,F,画出二叉图
adpck1年前1
576711102 共回答了20个问题 | 采纳率85%
前序 NLR 中序LNR
N就是node(节点),L左,L右
1.前序从根node开始第一个,中序从最L开始第一个,但他们都是D,所以D是根并且没有左节点
D
2.根据1得前序的第二个A肯定就是D的右节点,
D

A
3.中序的A中间夹着C,B,E,H说明这4个都在A的分支左边,
4.前序C紧接着A,根据3说明C是A的左节点
D

A
/
C
5.C在中序的C,B,E,H的最左边,所以C没有左节点
6.前序E紧接着C,所以根据5,E是C的右节点
D

A
/
C

E
7,前序B,H都在E后面,中序B,E,H,B就是E的左节点,H就是E的右节点
D

A
/
C

E
/
B H
8.前序接着是F,因为D已经有右节点了,A左边只能是CEBH,所以F肯定是A右节点
D

A
/
C F

E
/
B H
9.中序G,I都在F之前,所以G,I都在F分支左边
10.前序先G后I,所以G肯定是F的左节点,
D

A
/
C F
/
E G
/
B H
11.中序先G后I,所以I是G的右节点
D

A
/
C F
/
E G
/
B H I
求一道关于数据结构的题一棵完全二叉树上有1001个结点,其中叶子结点的个数是?
天上莵间1年前1
comeon198312 共回答了20个问题 | 采纳率95%
完全二叉树,叶子数为n(n>=2),则节点数为2*n-1,可以用数学归纳法证明如下:
当n=2时,很显然结点数为3(2个叶子,一个父结点),满足;
设当n=k时,节点数为2*k-1;
则当n=k+1时,因是完全二叉树,在n=k时的情形下,此时某一个叶子,自己变成了一个父节点,下面增加2个叶子,此时叶子数为k+1,而节点数为2*k-1+2=2*(k+1)-1,仍满足上述要求,因此,上述结论成立.反之亦然.
证毕.