#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:
BinaryTree(): root (NULL) { };
BinaryTree ( char value )
{
RefValue =value;
C++二叉树的基本操作
最新推荐文章于 2023-12-02 09:48:47 发布
本文详细介绍了如何使用C++进行二叉树的基本操作,包括创建、插入、删除节点,以及前序、中序、后序遍历等。通过实例代码解析,帮助读者深入理解二叉树的数据结构和算法实现。
摘要由CSDN通过智能技术生成