• 二叉树中序线索化


    #include <bits/stdc++.h>
    using namespace std;
     
    typedef struct TBTNode {
        char data;
        int ltag, rtag;
        struct TBTNode *lchild, *rchild;
    } TBTNode;
     
    void visit(TBTNode *p) {
        cout << " " << p->data ;
    }
     
    void InThread(TBTNode *p, TBTNode *&pre)
    { //&表示引用,node *&head一般用在插入结点函数中,用&head引用可以修改实参,在这里绝不能理解为取地址
        if (p) {
            InThread(p->lchild, pre);
            if (!p->lchild) {
                p->lchild = p;
                p->ltag = 1;
            }
            if (pre && !pre->rchild) {
                p->rchild = p;
                p->rtag = 1;
            }
            pre = p;
            InThread(p->rchild, pre);
        }
    }
     
    void createInThread(TBTNode *root)
    {
        TBTNode *pre = NULL;
        if (!root) {
            InThread(root, pre);
            pre->rchild = NULL;
            pre->rtag = 1;
        }
    }
     
    TBTNode *First(TBTNode *p)
    {
        while (!p->ltag)
            p = p->lchild;
        return p;
    }
     
    TBTNode *Next(TBTNode *p)
    {
        if (!p->rtag)
            return First(p->rchild);
        else
            return p->rchild;
    }
     
    void Inorder(TBTNode *root)
    {
        for (TBTNode *p = First(root); p != NULL; p = Next(p))
            visit(p);
    }
     
    int main()
    {
        ios::sync_with_stdio(false);
        // 未完待更...
        return 0;
    }
     
    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    Linux问题汇总
    Linux问题汇总
    朴素贝叶斯分类器
    捕捉异常信息
    异常处理类
    sqlserver2008链接服务器的使用和oracle11g客户端修改字符集
    抛出异常
    添加水印
    验证码
    sqlserver数据库备份
  • 原文地址:https://www.cnblogs.com/jijm123/p/14397119.html
Copyright © 2020-2023  润新知