zoukankan      html  css  js  c++  java
  • 线索排序树

    struct ThreadNode{
        int data;
        ThreadNode *lchild, *rchild;
        int ltag, rtag;
    };
    
    void InThread(ThreadNode *p, ThreadNode *pre){
        if(p != NULL){
            InThread(p->lchild, pre);
            if(p->lchild == NULL){
                p->lchild = pre;
                p->ltag = 1;
            }
            if(pre != NULL && pre->rchild == NULL){
                pre->rchild = p;
                pre->rtag = 1;
            }
            pre = p;
            InThread(p->rchild, pre);
        }
    }
    
    void CreateInThread(ThreadNode *T){
        ThreadNode *pre = NULL;
        if(T != NULL){
            InThread(T, pre);
            pre->rchild = NULL;
            pre->rtag = 1;
        }
    }
    
    void InPre(ThreadNode *T, ThreadNode* pre){
        if(T->ltag == 1) pre = T->lchild;
        else{
            ThreadNode* p;
            for(p = T->lchild; p->rtag == 0; p = p->rchild);
            pre = p;
        }
    }
    
    void InNext(ThreadNode *T, ThreadNode* next){
        if(T->rtag == 1) next = T->rchild;
        else{
            ThreadNode* p;
            for(p = T->rchild; p->ltag == 0; p = p->lchild);
            next = p;
        }
    }
  • 相关阅读:
    价格与用户权限
    bootstrap-validator
    关于项目管理的感想
    rabbitmq使用日记
    matplotlib
    JS滑动到页面底部
    排序算法思想
    杀死指定进程
    pycharm的一些快捷键
    对支付宝支付的理解
  • 原文地址:https://www.cnblogs.com/yingl/p/5845313.html
Copyright © 2011-2022 走看看