目录:
题目要求:
本题要求实现一个函数,求二叉树中值最小的元素。
函数接口定义:
void min2(BiTree T, TElemType &x)
解释接口参数:其中T
, x
都是用户传入的参数。 T
指向一棵二叉树, x
用来存放二叉树中值最小的元素。函数无返回值,结果直接记录在x中。
其中BiTree
结构定义如下:
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
裁判测试程序样例:
#include<iostream>
using namespace std;
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
void CreateTree(BiTree &T); //创建一棵二叉树T,已实现
void min2(BiTree T, TElemType &x); // 要实现的函数
int main()
{
BiTree M;
TElemType x;
CreateTree(M); //创建一棵二叉树M
if (M == NULL) return 0;
x = M->data;
min2(M,x);
cout << "该二叉树最小元素:" << x;
return 0;
}
输入样例:
输出样例:
在这里给出相应的输出。例如:
该二叉树最小元素:A
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
学习时间:
2022/11/26
- 星期六下午14:00
随便写写的答案:
void min2(BiTree T,TElemType &x)
{
if(T)
{
if(T->data < x)
{
x = T->data;
}
min2(T->lchild,x);
min2(T->rchild,x);
}
}
整体思路:
- 运用递归,若左右孩子不为空,则继续调用自己