二叉树带权路径长度WPL

编程入门 行业动态 更新时间:2024-10-07 20:29:24

二叉树带权<a href=https://www.elefans.com/category/jswz/34/1771438.html style=路径长度WPL"/>

二叉树带权路径长度WPL

二叉树的带权路径长度的公式如下:
WPL = 叶子节点的权重*该叶子节点所位于的层数
根节点算做第0层

#include <iostream>using namespace std;typedef struct node {int weight;struct node *left;struct node *right;
} TNode;TNode *CreateTree(TNode *&t);int WPL(TNode *t, int d);int wpl = 0;//记录叶子节点的带权路径长度int main() {auto t = new TNode;CreateTree(t);WPL(t, 0);cout << wpl << endl;return 0;
}TNode *CreateTree(TNode *&t) {int c;cin >> c;if (c < 0)t = nullptr;else {t = new TNode;t->weight = c;t->left = CreateTree(t->left);t->right = CreateTree(t->right);}return t;
}
//除根节点以外所有节点的带权路径长度
//int WPL(TNode *t, int d) {
//    if (t != nullptr) {
//        wpl += d * t->weight;
//        wpl = WPL(t->left, d + 1);
//        wpl = WPL(t->right, d + 1);
//    }
//    return wpl;
//}// 叶子节点的带权路径长度
int WPL(TNode *t,int d){if (t->right== nullptr&&t->left== nullptr){wpl += d *t->weight;} else{WPL(t->left,d+1);WPL(t->right,d+1);}return wpl;
}

更多推荐

二叉树带权路径长度WPL

本文发布于:2024-02-13 18:27:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759501.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路径   长度   二叉树   WPL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!