数据结构二叉树问题求助

问题描述

数据结构二叉树问题求助

设只含根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为(),最小结点数为()
答案是(2^k+1)-1和k+1。我做出来的是(2^k)-1和k

求帮忙算一下哪个是对的,谢谢了

解决方案

带入法计算就可以了。跟节点高度为0,比如高度为1,最大就有3个,最小两个。一看你的答案就错了。

解决方案二:

?? #define null 0???#include "stdio.h"
???typedef char datatype;?? typedef struct tn? {datatype data;?? struct tn *lc,*rc;??......
答案就在这里:数据结构-二叉树 问题
----------------------

时间: 2024-09-21 05:31:08

数据结构二叉树问题求助的相关文章

算法-求助,数据结构二叉树问题

问题描述 求助,数据结构二叉树问题 试编写算法,求给定二叉树上从根结点到叶子结点的一条其路径长度等于树的深度减一的路径(即列出从根结点到该叶子结点的结点序列),若这样的路径存在多条,则输出路径终点(叶子结点)在"最左"的一条. 解决方案 ?? #define null 0???#include "stdio.h"???typedef char datatype;?? typedef struct tn? {datatype data;?? struct tn lc,

java 数据结构二叉树的实现代码_java

1. 二叉树接口 public interface BinaryTreeInterface<T> { public T getRootData(); public int getHeight(); public int getNumberOfRoot(); public void clear(); public void setTree(T rootData); // 用rootData设置树 public void setTree(T rootData,BinaryTreeInterface

第十章 基本数据结构——二叉树

可以参考:http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html 摘要 书中第10章10.4小节介绍了有根树,简单介绍了二叉树和分支数目无限制的有根树的存储结构,而没有关于二叉树的遍历过程.为此对二叉树做个简单的总结,介绍一下二叉树基本概念.性质.二叉树的存储结构和遍历过程,主要包括先根遍历.中根遍历.后根遍历和层次遍历. 1.二叉树的定义 二叉树(Binary Tree)是一种特殊的树型结构,每个节点至多有两棵子树,

C#与数据结构--二叉树的遍历

二叉树的存储结构 二叉树的存储可分为两种:顺序存储结构和链式存储结构. 1.顺序存储结构 把一个满二叉树自上而下.从左到右顺序编号,依次存放在数组内,可得到图6.8(a)所示的结果.设满二叉树结点在数组中的索引号为i,那么有如下性质. (1)如果i = 0,此结点为根结点,无双亲. (2)如果i > 0,则其双亲结点为(i -1) / 2 .(注意,这里的除法是整除,结果中的小数部分会被舍弃.) (3)结点i的左孩子为2i + 1,右孩子为2i + 2. (4)如果i > 0,当i为奇数时,它

数据结构 二叉树-二叉树 节点类型为结构类型 如何初始化和赋值?

问题描述 二叉树 节点类型为结构类型 如何初始化和赋值? struct ItemNode { int id; string name; }; typedef struct BNode { ItemNode node; BNode *lChild; BNode *rChild; }BNode; 解决方案 ItemNode i1, i2, i3; i1.id = 1; i1.name = "a"; i1.id = 2; i1.name = "b"; i1.id = 3;

数据结构——二叉树

1 基本定义 ①二叉树是n(n>=0)个结点的有限集,当n=0时,二叉树为空.当n>0时,二叉树是由一个根节点及至多两颗子树组成,且左右子树都是二叉树.    不同于树,二叉树中的结点要区分左子树和右子树,即使只有一颗子树,左单子树不同于右单子树. ②树的一些基本术语: 结点:包含了数据元素及若干个指向其子树的分支. 结点的度:结点的子树数目或分支个数. 树的度:在树中取各结点的度的最大值. 结点的路径:从根结点到该结点所经分支和结点构成的结点的路径. 结点的层次:设根结点的层次为1,则其子树

数据结构 二叉树 遍历-树的括号表示法怎么写

问题描述 树的括号表示法怎么写 #include #include #include using namespace std;struct treenode{char data;treenode firstchild;treenode *nextsibling;};treenode * creat_tree(char&a){ if((*a)==''){a++;}if((*a)=='')return NULL;if((*a)==')'){a++;return NULL;}if((*a)=='(')

数据结构 二叉树-new运算符是否改变其指针原有的值

问题描述 new运算符是否改变其指针原有的值 如图,感觉会,但改变后像leftchild不是不能指向分配的空间吗,小白一个,求指教 解决方案 会,但是看Insert()的参数,第二个参数是指针的引用,相当于二级指针,所以修改了ptr相当于修改了上一层递归的ptr->leftChild. 解决方案二: 我懂了,其实书后面就有,不过还是谢谢你啦 解决方案三: 开辟了新的内存空间的 解决方案四: 指针的引用做参数,可以修改指针本身,这样insert函数内部就可以修改指针的内容,也就是指向的地址.

数据结构 二叉树-我写的树的括号表示法哪错了,怎么改,求大神解答

问题描述 我写的树的括号表示法哪错了,怎么改,求大神解答 #include #include #include using namespace std; struct treenode { char data; treenode *firstchild; treenode *nextsibling; }; treenode * creat_tree(char*&a) { if((*a)==',') { a++; } if((*a)=='') return NULL; if((*a)==')')