高分悬赏!!数据结构问题。判定二叉树等。
要算法及简要的算法思想,把答案发我邮箱里,否则不给悬赏分。1.判定一棵二叉树是否是Huffmann树2.判断一个有向图是否是强联通的。3.两路归并排序可以在原地完成吗?(...
要算法及简要的算法思想,把答案发我邮箱里,否则不给悬赏分。
1.判定一棵二叉树是否是Huffmann树
2.判断一个有向图是否是强联通的。
3.两路归并排序可以在原地完成吗?(这题只要设计思想)
邮箱330806931@qq.com
回答好的再追加100分!!! 展开
1.判定一棵二叉树是否是Huffmann树
2.判断一个有向图是否是强联通的。
3.两路归并排序可以在原地完成吗?(这题只要设计思想)
邮箱330806931@qq.com
回答好的再追加100分!!! 展开
2个回答
展开全部
1. 对这个树遍历的同时进行两项检查
a. 每个结点有0个或2个子结点
b. 如果有2个子节点 则子结点的值之和等于该结点的值
2. 可以考虑BFS算法的变种应用 从某结点开始 应用BFS算法 只是这次不再对每个结点进行“以访问”标记 而是在每个结点里记录该结点的祖先信息(就是父结点 爷爷结点等等) 访问下一个结点的时候不访问除了根以外的祖先结点
例如 访问A结点 (A结点可以到达B结点) 然后访问B结点 (B结点可以到达A C 结点) 由于A结点是B结点的祖先结点 所以只访问C结点
但是如果A结点是根的话 B结点就要访问 A C结点
依次类推
每个分支一直发展到没有结点可以访问或者访问到根结点 结束
寻找所有从根结点到根结点的分支 如果这些分支中所含的结点的并集等于图的所有结点 那么这个图就是强联通图
说的有些乱 不知道你能不能看明白
3. 这个原地完成我也没太明白
原来是 A + B = C
现在给改成 A + B = A 就是了
也就是依次把B插入A中对应的位置就是了 比较还是跟原来的归并一样
a. 每个结点有0个或2个子结点
b. 如果有2个子节点 则子结点的值之和等于该结点的值
2. 可以考虑BFS算法的变种应用 从某结点开始 应用BFS算法 只是这次不再对每个结点进行“以访问”标记 而是在每个结点里记录该结点的祖先信息(就是父结点 爷爷结点等等) 访问下一个结点的时候不访问除了根以外的祖先结点
例如 访问A结点 (A结点可以到达B结点) 然后访问B结点 (B结点可以到达A C 结点) 由于A结点是B结点的祖先结点 所以只访问C结点
但是如果A结点是根的话 B结点就要访问 A C结点
依次类推
每个分支一直发展到没有结点可以访问或者访问到根结点 结束
寻找所有从根结点到根结点的分支 如果这些分支中所含的结点的并集等于图的所有结点 那么这个图就是强联通图
说的有些乱 不知道你能不能看明白
3. 这个原地完成我也没太明白
原来是 A + B = C
现在给改成 A + B = A 就是了
也就是依次把B插入A中对应的位置就是了 比较还是跟原来的归并一样
景联文科技
2024-06-11 广告
2024-06-11 广告
杭州景联文科技有限公司专注于大模型数据集的研发与应用。我们深知,在人工智能飞速发展的时代,数据是驱动模型优化的核心动力。因此,我们致力于构建丰富、多元的大模型数据集,涵盖各行各业,为AI模型提供充足的“养分”。通过不断积累与优化,我们的数据...
点击进入详情页
本回答由景联文科技提供
展开全部
1. 不清楚这个怎么定义huffman树, 也许可以用所有叶节点自己做个huffman树, 比较一下是不是每一层的节点分别相同(顺序可以不同)
2. 判断强联通一般就是找一个包含所有节点的环。 从一个点出发找路径, 如果出现环(未必是到出发点的,也许是在中间有一段环), 就把环里的所有顶点归并成一个点, 整理一下路径表,然后继续找, 直到所有顶点归并成一个为止。如果部分顶点归并到没出度了那就是非强联通了
3. 想不到什么办法可以原地归并。 除非是这东西本身很大的话, 用链表归并当然就可以原地了。 不过如果排序的东西本身就是个int之类的, 多个指针就等于多一倍空间开销,这个原地就比较无聊了
2. 判断强联通一般就是找一个包含所有节点的环。 从一个点出发找路径, 如果出现环(未必是到出发点的,也许是在中间有一段环), 就把环里的所有顶点归并成一个点, 整理一下路径表,然后继续找, 直到所有顶点归并成一个为止。如果部分顶点归并到没出度了那就是非强联通了
3. 想不到什么办法可以原地归并。 除非是这东西本身很大的话, 用链表归并当然就可以原地了。 不过如果排序的东西本身就是个int之类的, 多个指针就等于多一倍空间开销,这个原地就比较无聊了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询