- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
1、深度为k的完全二叉树至多有(C )个结点,至少有( B )个结点。
A.2k-1-1 B.2k-1
C.2k-1 D.2k
2、在具有200个结点的完全二叉树中,设根结点的层次编号为1,则层次编号为60的结点,其左孩子结点的层次编号为(C2i),右孩子结点的层次编号为(D2i+1),双亲结点的层次编号为(60/2=30A)。
A.30 B.60
C.120 D.121
3、一棵具有124个叶子结点的完全二叉树,最多有(B)个结点。
A.247 B.248
C.249D. 250
4、已知完全二叉树第6层上有10个叶子结点,则这棵二叉树的结点总数最多是
107 。
26-1=63,25=32,32-10=22,44+63
5、一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是 n-2m+1 。
n=n0+n1+n2,n0=n2+1
6、深度为k(k0)的二叉树至多有2k-1个结点,第i层上至多有2i-1个结点。
7、已知二叉树中有30 个叶子结点,则二叉树的总结点个数至少是
30+29+0=59 。n0=n2+1 n0=30 n2=29 n1=0
8、一棵深度为6的满二叉树有n1+n2=0+n2=n0-1=31 个分支结点和26-1=32
个叶子。
9、设一棵完全二叉树具有1000个结点,则此完全二叉树有500 个叶子结点,有 499 个度为2的结点,有 1 个结点只有非空左子树,有0个结点只有非空右子树。
答:最快方法:用叶子数=[n/2]=500,n2=n0-1=499。另外,最后一结点为2i属于左叶子,右叶子是空的,所以有1个非空左子树。完全二叉树的特点决定不可能有左空右不空的情况,所以非空右子树数=0.
????
10、 含有11个结点的不相似的二叉树有
2??棵。
??+1
11、 若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是 FEGHDCB 。
基本知识
二叉树的创建
二叉树的前中后序遍历二叉树的深度、叶子
二叉树的前中后序非递归二叉树的层次遍历
创建哈弗曼树哈弗曼编码
intLayerOrder(BiTreebt)
{
遍历*/
SeqQueue*Q;
BiTreep;
Q=(SeqQueue*)malloc(sizeof(SeqQueue));
InitQueue(Q);/*初始化空队列Q*/if(bt==NULL)
returnERROR;/*若二叉树bt为空树,则结束遍历*/EnterQueue(Q,bt);/*若二叉树bt非空,则根结点bt入队,开始层次
while(!IsEmpty(Q))/*若队列非空,则遍历为结束,继续进行*/
{
进队*/
进队*/
DeleteQueue(Q,p);/*队头元素出队并访问*/printf(%c,p-data);
if(p-LChild)
EnterQueue(Q,p-LChild);/*若p的左孩子非空,则
if(p-RChild)
EnterQueue(Q,p-RChild);/*若p的右孩子非空,则
}/*while*/returnOK;
}/*LayerOrder*/
编程题
1、有数据为{22,10,46,17,13,110,20,15,34}试构造一棵哈夫曼(Huffman
树),并计算WPL。
2、二叉树的深度、叶子个数、公共祖先
BiTree
BiTreeLCA(BiTreeroot,DataTypeT,DataTypeS)
{
BiTreel,r;
if(root==NULL)returnNULL;
if(root-data==T||root-data==S)returnroot;l=LCA(root-LChild,T,S);
r=LCA(root-RChild,T,S);
if(l!=NULLr!=NULL)returnroot;if(l!=NULL)returnl;
if(r!=NULL)returnr;returnNULL;
}
BTreeNode_t*GetLastCommonParent(BTreeNode_t*pRoot,BTreeNode_t*pNode1,BTreeNode_t*pNode2){
if(pRoot==NULL)//说明是空树,不用查找了,也就找不到对应节点,则返回
NULL
returnNULL;4.
文档评论(0)