二叉树的基本操作

更新时间:2023-06-30 14:20:39 阅读: 评论:0

米底人
//取两者中最大函数
template<class T>
T Max(T a, T b)
{
return a>b ? a : b;
}
//二叉树类
template<class T>
struct BTNode
附庸风雅什么意思
{
BTNode(){ lChild = rChild = NULL; }
BTNode(const T& x)
{
element = x; lChild = rChild = NULL;
}
BTNode(const T&x, BTNode<T>* l, BTNode<T>* r)
{
element = x; lChild = l; rChild = r;
}
T element; //结点内元素
BTNode<T>* lChild, *rChild; //指针指向左孩子和右孩子
};
template <class T>
class BinaryTree
{
老师你怎么在这里public:
BinaryTree(){ root = NULL; }
~BinaryTree(){}
void Clear();
void MakeTree(const T& x, BinaryTree<T>& left, BinaryTree<T>& right);
void BreakTree(T& x, BinaryTree<T>& left, BinaryTree<T>& right);
void Traver(void(*Visit)(T& x));松叶牡丹
int Size();//计算二叉树中所有结点数量
void Exchange();//交换所有的左右子树
BTNode<T>* &Getroot();//获得根结点
BTNode<T>* Copy(BTNode<T>* t);//复制二叉树
int Measure();//测量二叉树的高度
int BTreeCount();//计算二叉树叶子结点数量
protected:
BTNode<T>* root;
private:
void Clear(BTNode<T>* &t);//删除一棵二叉树
int Size(BTNode<T>* t);//求一棵二叉树中所有结点数量
void Exchange(BTNode<T>* &t);//交换所有的左右子树
int BTreeCount(BTNode<T>* t);//计算二叉树叶子结点数量
int Measure(BTNode<T> *t);//测量二叉树的高度
};
template<class T>
BTNode<T>* &BinaryTree<T>::Getroot()
{
if (root)
return root;
}
template<class T>
void BinaryTree<T>::MakeTree(const T& x, BinaryTree<T>& left, BinaryTree<T>& right) {
word图标心脏吃什么药最好
if (root || &left == &right)return;
root = new BTNode<T>(x, , );
< = = NULL;
}
template<class T>
怎样招商void BinaryTree<T>::BreakTree(T& x, BinaryTree<T>& left, BinaryTree<T>& right) {a型血性格
if (!root || &left == &right || || )return;
x = root->element;
< = root->lChild; = root->rChild;
delete root; root = NULL;
}

本文发布于:2023-06-30 14:20:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1070310.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:二叉树   结点   数量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图