求二叉树指定结点到根的路径c语言,建立二叉树并求指定结点路径.doc
时间: 2024-03-18 16:42:07 浏览: 28
好的,以下是C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 建立二叉树
TreeNode* createTree() {
int val;
scanf("%d", &val);
if (val == -1) {
return NULL;
}
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = val;
root->left = createTree();
root->right = createTree();
return root;
}
// 查找指定结点并返回该结点到根的路径
int findNode(TreeNode* root, int val, int path[], int index) {
if (root == NULL) {
return 0;
}
if (root->val == val) {
path[index] = root->val;
return 1;
}
if (findNode(root->left, val, path, index + 1) || findNode(root->right, val, path, index + 1)) {
path[index] = root->val;
return 1;
}
return 0;
}
int main() {
TreeNode* root = createTree();
int val;
printf("请输入要查找的结点值:");
scanf("%d", &val);
int path[100];
int isFound = findNode(root, val, path, 0);
if (isFound) {
printf("%d到根的路径为:", val);
for (int i = 0; i < 100; i++) {
if (path[i] != 0) {
printf("%d ", path[i]);
} else {
break;
}
}
} else {
printf("未找到该结点!");
}
return 0;
}
```
该代码实现了建立二叉树并查找指定结点,返回该结点到根的路径。其中,建立二叉树的函数为`createTree`,查找指定结点并返回路径的函数为`findNode`。`path`数组用于存储路径,`index`表示当前路径上的位置。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)