一、前言
上一篇:
(二叉树)1. 二叉排序树的创建、[先序、中序、后序](递归和非递归六种操作)遍历讲解及代码
本文实现查找二叉排序树的最大、最小值以及寻找指定结点的前驱和后继。
本页需用概念:
祖先结点是从根到该结点所经过的所有结点(不包含本结点)。
二、正文
1. 查找最大、最小值
1.1 说明
二叉排序树最“左边”的结点就是最大j结点,最“右边”的结点就是最小j结点
也就是说,
一直遍历左子树直到叶子就能找到最大j结点
一直遍历右子树就能找到最小j结点
1.2 代码
//下面是查找最大、最小值
//查找最大值
BiTree* maxValue(BiTree* root) {
while (root->right)
root = root->right;
return root;
}
//查找最小值
BiTree* minValue(BiTree* root) {
while (root->left)
root = root