二叉查找树 (4)

如下图所示:

这里写图片描述

//这段代码是实现查找最大值和最小值的代码 /*思路:我们可以从root节点开始: 一直沿着左节点往下找,直到子节点等于NULL为止,这样就可以找到最小值了; 一直沿着右节点往下找,直到子节点等于NULL为止,这样就可以找到最大值了。 */ //递归的方式 template<class T> Node<T>* BST<T>::findMin(Node<T>* t) const { if(NULL==t){ return NULL; } else if(NULL==t->left){ return t; } else{ return findMin(t->left); } } //递归的方式 template<class T> Node<T>* BST<T>::findMax(Node<T>* t) const { if(NULL == t){ return NULL; } else if(NULL == t->right){ return t; } else { return findMax(t->right); } } //循环方式 template<class T> Node<T>* BST<T>::findMin_loop(Node<T>* t) const { if(NULL==t) { return NULL; } while(t->left) { t=t->left; } return t; } //循环方式 template<class T> Node<T>* BST<T>::findMax_loop(Node<T>* t) const { if(NULL==t) { return NULL; } while(t->right) { t=t->right; } return t; } //查找最小值,并返回最小值 template<class T> const T& BST<T>::findMin() const { Node<T>* p=findMin(root); return p->data; } //查找最大值,并返回最大值 template<class T> const T& BST<T>::findMax() const { Node<T>* p=findMax(root); return p->data; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzfxj.html