用c语言写段代码,要求如下:1.输入先序遍历序列,建立二叉链表,空结点为0。2.输入二叉树的WPL值
时间: 2024-05-01 11:19:50 浏览: 106
以下是用C语言实现输入先序遍历序列建立二叉链表的代码:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
TreeNode *createNode(int data) {
TreeNode *node = (TreeNode *)malloc(sizeof(TreeNode));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
TreeNode *createTree() {
int data;
scanf("%d", &data);
if (data == 0) {
return NULL;
}
TreeNode *root = createNode(data);
root->left = createTree();
root->right = createTree();
return root;
}
int getWpl(TreeNode *root, int level) {
if (!root) {
return 0;
}
if (!root->left && !root->right) {
return level * root->data;
}
return getWpl(root->left, level + 1) + getWpl(root->right, level + 1);
}
int main() {
TreeNode *root = createTree();
int wpl = getWpl(root, 0);
printf("WPL: %d\n", wpl);
return 0;
}
```
注:WPL是指带权路径长度(weighted path length),即所有叶子节点的深度乘以它们的权值之和。本代码用递归实现计算WPL。
阅读全文
相关推荐
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)