求哈夫曼树的带权路径长度 算法
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:数学作业 时间:2024/07/13 17:27:33
求哈夫曼树的带权路径长度 算法
1, T->lchild == NULL && T->rchild == NULL //叶节点
2, n + T->weight * h //加上当前叶节点的带权路径长度
3, WPL(T->lchild, h+1) //遍历左子树
4, WPL(T->rchild, h+1) //遍历右子树
再问: h好像不对哦,你这样,在遍历过第一个叶节点之后,h一直在不断累加的
再答: h是当前节点到根节点的路径长度,h和T参数是对应的,每次调用WPL,T指向它的一个孩子,h是要加1的。由于是递归调用,当右子树递归结束时,h的值会恢复到调用之前的值,继续在其左子树递归!这两行: 3, WPL(T->lchild, h+1) //遍历左子树 4, WPL(T->rchild, h+1) //遍历右子树 两个h+1的值是相等的。形式上跟二叉树的中序遍历很相似,可参考下数据结构教材。希望采纳,如有问题,欢迎继续交流!
2, n + T->weight * h //加上当前叶节点的带权路径长度
3, WPL(T->lchild, h+1) //遍历左子树
4, WPL(T->rchild, h+1) //遍历右子树
再问: h好像不对哦,你这样,在遍历过第一个叶节点之后,h一直在不断累加的
再答: h是当前节点到根节点的路径长度,h和T参数是对应的,每次调用WPL,T指向它的一个孩子,h是要加1的。由于是递归调用,当右子树递归结束时,h的值会恢复到调用之前的值,继续在其左子树递归!这两行: 3, WPL(T->lchild, h+1) //遍历左子树 4, WPL(T->rchild, h+1) //遍历右子树 两个h+1的值是相等的。形式上跟二叉树的中序遍历很相似,可参考下数据结构教材。希望采纳,如有问题,欢迎继续交流!
数据结构,构造哈夫曼树,求树的带权路径长度
求二叉树的带权路径长度?
对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长度为
一组权(10,12,16,21,30)通过霍夫曼算法求出的扩充二叉树的带全外部路径长度为?
一组权(10,12,16,21,30)通过霍夫曼算法求出的扩充二叉树的带全外部路径长度为?我算的结果为170,
数据结构题:对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长
采用Dijkstra算法求解带权有向图的最短路径问题时,要求图中i跳变所带的权值必须是(C)数
由分别带权为9,2,5,7的4个叶节点构造一棵哈夫曼树,该树的带权路径长度为()?
遗传算法求最短路径的matlab程序,
百度地图的路径搜索算法
最短路径的Dijkstra算法思路
急 有悬赏 哥定权值集合11.3.14.2.7.9.16构造相应的huffman树,计算他的带权路径长度WPL