C++二叉树的基本操作

本文详细介绍了如何使用C++进行二叉树的基本操作,包括创建、插入、删除节点,以及前序、中序、后序遍历等。通过实例代码解析,帮助读者深入理解二叉树的数据结构和算法实现。
摘要由CSDN通过智能技术生成
#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;
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值