#pragma once
#include "stdafx.h"
#include "BinTreeNode.h"
#include "Stack.h"
//二叉树类BinTree的声明
template <typename T>
class BinTree {
private:
//指向根结点
BinTreeNode<T>* root;
//输入stop时,终止结点的输入
T stop;
//从结点begin开始搜索,返回结点current的父结点
BinTreeNode<T>* father(BinTreeNode<T>* begin, BinTreeNode<T>* current);
//10个方法
public:
//Constructor(),构造函数--在声明一棵二叉树时进行初始化,生成一棵空树
BinTree() :root(NULL) {}
//Constructor(),//输入stop时,终止结点的输入
BinTree(T mark) :root(NULL), stop(mark) {}
//DeConstructor(),析构函数--删除整棵二叉树
virtual ~BinTree() { DelSubtree root; }
//在当前结点的位置插入一个结点
int Insert(BinTreeNode<T>*& current, const T& item);
//从结点current开始,搜索数据值为item的结点,返回编号
int Find(BinTreeNode<T>*& current, const T& item) const;
//删除结点current及其左右子树
void DelSubtree(BinTreeNode<T>* current);
//先根遍历并输出以结点t为根的树
void Preorder(BinTreeNode<T>* t, ostrem&
二叉树类BinTree的声明
最新推荐文章于 2022-11-28 11:52:19 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)