- 
                Notifications
    You must be signed in to change notification settings 
- Fork 0
TREES.h包含的内容
        Sumizome Yoshino edited this page Feb 26, 2024 
        ·
        1 revision
      
    - explicit TREE(const bool Huffman, const int type, const bool Tree, const bool help);//默认构造函数
- ~TREE();//默认析构函数
- TREE& operator=(const TREE& x);//重载赋值运算符
- TREE(const TREE& x);//复制构造函数
- void Silence_T();//开启调试输出
- void Silence_F();//关闭调试输出
- void Preorder() const;//先序遍历二叉树
- void Inorder() const;//中序遍历二叉树
- void Inorder_nostack() const;//中序遍历二叉树,使用parent域,不使用栈
- void Postorder_A() const;//更好的后序遍历算法,栈中所有结点都是当前结点的祖先
- void Postorder_B() const;//后序遍历二叉树
- void Level() const;//层序遍历二叉树
- void Tree_thread(const int order);//二叉树线索化
- void Tree_nonthread();//二叉树去线索化
- int Tree_thread_type() const;//返回二叉树被线索化的类型
- void Convert_tree();//将二叉树标记为使用二叉链表作为存储结构的树或者森林
- void Convert_nontree();//将用二叉链表作为存储结构的树或者森林标记为普通的二叉树
- long long Num_leaf() const;//叶子结点的数量(二叉树/树/森林)
- long long Num_nonleaf() const;//非叶子结点的数量(二叉树/树/森林)
- void Cleartree();//将二叉树清空
- void Repairtree();//若树不存在(tree_m=nullptr),创建一棵空树。若树存在,不执行任何操作。该函数不可代替Cleartree函数
- long long Depth() const;//二叉树的深度(二叉树/树/森林)
- bool Complete() const;//二叉树是否为完全二叉树
- void Info() const;//输出二叉树的全部信息
- void ExchangeLR();//交换二叉树所有结点的左右子树
- long long Max_level_node() const;//二叉树每层结点数的最大值
- Type L_C_A(const long long a, const long long b) const;//二叉树两个结点的最小公共祖先,a/b是层序序列下两个结点的编号
- void Longest_path() const;//输出二叉树中最长的路径(若有多条,输出叶子结点最靠左的那条)
- void Print_Preorder(const bool guide) const;//以凹入表形式打印二叉树(可选是否打印辅助线)(二叉树/树/森林)
- void Print_Inorder() const;//树状打印二叉树,不可以打印树/森林,不支持打印辅助线
- void Print_arithmetic() const;//按照算术表达式形式打印二叉树
- long long Degree() const;//返回树或二叉树的度(二叉树/树/森林)
- void Huffman_create();//创建一个赫夫曼树
- long double W_P_L() const;//计算赫夫曼树的带权路径长度
- template friend bool Similar(const TREE& a, const TREE& b);//判断二叉树是否相似(结点结构相同但是值可以不同)