网站设计两边为什么要留白,瑞诺国际公司团队介绍,wordpress配置外网映射,做网站需要了解哪些知识二叉树的带权路径长度#xff08;WPL#xff09;是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T#xff0c;采用二叉链表存储。结点结构为#xff1a;
其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针#xff0c;请设计求T的WPL的算法…二叉树的带权路径长度WPL是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T采用二叉链表存储。结点结构为
其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针请设计求T的WPL的算法。
思想使用先序遍历递归的方式实现。使用一个变量len初始值为0每向下遍历一层len加1.如果当前结点是叶子结点的话那么就计算len-1*weight并加入到总权值中。
代码
typedef struct BiTNode{ElemType data;struct BiTNode *left*right;
}BiTNode, *BiTree;void TWPL(BiTree root,int len,int wpl){if(root NULL) return;//树空 len;if(root-leftNULL root-rightNULL){//叶结点 wpl (len-1)*root-weight;}else{//递归处理左右子树 wpl(root-left,len,wpl);wpl(root-right,len,wpl);}
}
int WPL(BiTree root){int wpl0;TWP(root,0,wpl);return wpl;
}