#include <iostream>
using namespace std;
template <typename Type>
class BinaryTree;
template <typename valType>
class BTnode{
friend class BinaryTree<valType>;
public:
BTnode(const valType &val);
void insert_value(const valType &elem);
void remove_value(const valType &val, BTnode *&prev);
static void preorder(BTnode *pt);
static void inorder(BTnode *pt);
static void postorder(BTnode *pt);
static void lchild_leaf(BTnode *leaf, BTnode *subtree);
private:
valType _val;
int _cnt;
BTnode* _lchild;
BTnode* _rchild;
};
template <typename valType>
inline BTnode<valType>::BTnode(const valType &val)
: _val(val){
_cnt = 1;
_lchild = _rchild = 0;
}
template <typename valType>
void BTnode<valType>::lchild_leaf(BTnode *leaf, BTnode *subtree){
while(subtree->_lchild)
c++利用模板实现二叉树插入删除以及遍历
最新推荐文章于 2023-01-16 11:00:28 发布