一道简单的数据结构题,求求了

设计一个在链式存储结构上统计二叉树中结点个数的算法。
void countnode(bitree *bt,int &count)
{
if(bt!=0)
{count++; countnode(bt->lchild,count); countnode(bt->rchild,count);}
}
现在要求统计结点值大于1的结点个数,需要改哪里?

第1个回答  2019-07-06
插入的话:
共有n+1个插入位置,每个概率是1/(n+1)
在最开始插入要移动n个
在末尾插入要移动0个
平均移动元素为:(1/(n+1))*[n+(n-1)+…+1+0]=n/2
删除的话:
共有n个删除位置
删除第一个要移动n-1
删除最后一个要移动0个
平均移动:(1/n)*[(n-1)+…+1]=(n-1)/2
求平均时候,有高中时候求期望的思想
琢磨琢磨
明白了把
第2个回答  2019-07-01
节点值是怎么存储的?
我先给一段伪代码吧:
void countnode(bitree *bt,int &count)
{
if(bt!=0)
{
if (当前节点bt的节点值大于1) count++;
countnode(bt->lchild,count);
countnode(bt->rchild,count);
}
}
其实就是在count++前面加上一个判断
有问题追问本回答被网友采纳
第3个回答  2019-06-30
你说的这个太简单了吧,我都不知道怎么回答。追问

就是上面的程序是统计结点个数的算法,我想知道如果现在要统计大于1的结点个数,这个算法要修改哪里

第4个回答  2019-06-30
你的问题我觉得让人无法回答,因为你的提问一点提示都没有,我想你可以在百度知道里面只能向教授提出,也许教授能够回答,一般人是很难回答的

求助一简单数据结构问题
1001+2*(1+2+3+4+5+1)=1033 选择答案C

数据结构题目求解答!先谢各位了!!
首先说明一下什么是数据的存储结构,它是批数据结构在计算机中的表示(物理结构),主要有四种:顺序存储、链式存储、索引存储和散列存储。顺序存储的特点是:逻辑上相邻的元素存储在物理位置上也相邻的存储单元里,第1题里问“可用存储顺序代表逻辑顺序的数据结构”自然是D顺序存储结构了,因为存储是一个物...

求助一非常简单数据结构问题
第一次 查找所找到的数字为53:4 12 21 30 46 53 62 70 78 85 90 第二次 查找所找到的数字为70:53 62 70 78 85 90 第三次 查找所找到的数字为78:70 78 85 90 第四次 查找所找到的数字为85:78 85 90 综上,需要四次元素之间的比较才能准确找到85....

一道简单的数据结构考试题,学的东西基本都还老师了。。。那位能不吝赐 ...
(1)确定根节点:由后续可知,Un是根节点;在中序中找到Un,可知Un之前的为左子树,之后的为右子树;(2)分段:用Un将中序序列Up1,Up2,...Upn划分为【左子树中序序列、Un、右子树中续序列】;用得到的左子树序列和右子树序列将后序序列U1,U2...Un划分为【左子树后续序列、Un、右子树后续序列...

数据结构题一道,请高手帮忙~具体算法是怎么算的!
用查找每个元素的概率乘找到该元素需要遍历的长度后相加即得到结果。avgLen = (1\/24)*1 + (1\/6)*2 + (2\/3)*3 + (1\/8)*4 = 23\/8 故选A

数据结构问题,求解答,谢谢!
答案 : 472 行优先存储明白吗?就是一行一行的存,不是一列一列的存。题目告诉了A[1][1]和A[3][3]的存储地址,是想让你推算出A数组的大小。由于A[1][1]的地址是420,所以A[1][0]的地址就是419,还有A[3][3]的地址是446,那么A[3][0]的地址就是443。从A[1][0]到A[3][0],...

数据结构题目,求大神解决。!~!
很简单,只是计算过程比较繁琐。我把它画出来了,画的比较丑你看不懂再追问!(1)层次遍历是:86,74,40,53,65,36,16,38,46,14,27,26 (2)答案是:(53,46,40,38,27,34,16,14,26) (74,86,65)

数据结构试题,求解答。(很重要,不会就别乱回答了。会追加分的,万分感谢...
5、我知道的快速排序版本就有3个,虽然算法几乎一摸一样的,不过对作支点的那个数的位置的互换略有不同,那么每轮的结果自然不一样,我好不容易找到原版教材的算法,是机械工业出版社的《数据结构、算法与应用 ——c++语言描述》版,但愿是一样的算法 1)、以46为支点 :78,29 ——46,25,29...

求解数据结构本题,详细过程
假设度为1的结点数为n1,度为2的结点数为n2,叶子结点数为n0,总结点数为n,则有n1+n2+n0=n。同时,度为1的结点有1个分枝,度为2的结点有2个分枝,而所有分枝数加1等于总结点数,所以有n1+2n2+1=n=n1+n2+n0。则有n0=n2+1,即叶子结点数等于度为2的结点数加1。

数据结构问题 求详解
设栈的顺序存储空间为S(1: m),初始状态为top=m+1,说明栈空时top=m+1;入栈时栈顶指针是减操作。当前栈中的元素为:m+1-20=m-19所以答案C正确

相似回答