按先序次序建立一棵二叉树(二叉链表),然后输出树中最小结点值,请给出完整C++代码
时间: 2024-05-05 08:19:53 浏览: 101
好的,以下是按先序次序建立一棵二叉树并输出最小结点值的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) { // 输入-1表示该节点为空
return NULL;
}
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = val;
root->left = createTree();
root->right = createTree();
return root;
}
// 找到树中最小结点值
int findMin(TreeNode* root) {
if (root == NULL) {
return -1;
}
while (root->left != NULL) {
root = root->left;
}
return root->val;
}
int main() {
printf("请按先序次序输入二叉树节点值(-1表示该节点为空):\n");
TreeNode* root = createTree();
int minVal = findMin(root);
printf("该二叉树中最小结点值为:%d\n", minVal);
return 0;
}
```
注意,这里我们假设输入的二叉树中没有重复的结点值,否则需要在 `findMin` 函数中进行额外的处理。
阅读全文