首页 > 代码库 > 线索排序树
线索排序树
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; }}
线索排序树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。