#include <iostream>
using namespace std;
class BinaryTree ;
class BinTreeNode //结点类的定义
{
friend BinaryTree;
private:
BinTreeNode *leftChild, *rightChild; //左、右子女链域
char data; //数据域
public:
BinTreeNode ( )
{
leftChild =NULL;
rightChild =NULL;
}
BinTreeNode ( char x,BinTreeNode *left = NULL,BinTreeNode *right = NULL ) : data (x), leftChild (left), rightChild(right) { } //构造函数
~BinTreeNode ( ) { } //析构函数
};
class BinaryTree
{
private:
BinTreeNode *root; //二叉树的根指针
char RefValue; //数据输入停止标志
void CreateBinTree( BinTreeNode * & subTree) ;
BinTreeNode *Parent ( BinTreeNode * subTree,BinTreeNode *current );
int Height(BinTreeNode *subTree);
int Size(BinTreeNode *subTree);
void preOrder(BinTreeNode *subTree ); //前序遍历
void inOrder(BinTreeNode *subTree ); //中序遍历
void postOrder(BinTreeNode *subTree ); //后序遍历
void levelOrder(BinTreeNode *subTree); //层序遍历
void destroy(BinTreeNode* &subTree) {};
int Leafnum(BinTreeNode *subtree);
int Find(char C,BinTreeNode * sub);
void out(BinTreeNode* node, int lay);
public:
Binary
C++二叉树的基本操作
最新推荐文章于 2023-12-02 09:48:47 发布