C语言中怎么利用递归实现线索二叉树-创新互联

本篇文章为大家展示了C语言中怎么利用递归实现线索二叉树,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

在科尔沁左翼等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、做网站 网站设计制作定制网站制作,公司网站建设,企业网站建设,品牌网站设计,全网整合营销推广,成都外贸网站建设,科尔沁左翼网站建设费用合理。

描述:将二叉树中结点的空左孩子指针域指向前驱结点,将空的右孩子指针域指向后继结点。 

code:

#pragma warning(disable:4996)
#include
#include
typedef struct TreeNode {
 char data;
 struct TreeNode *lchild, *rchild;
 int ltag, rtag;
}Tree,*BTree;
BTree Build_Tree(void) {
 BTree T;
 char ch;
 scanf("%c", &ch);
 if (ch == '#') {
 T = NULL;
 }
 else {
 T = (BTree)malloc(sizeof(Tree));
 T->data = ch;
 T->ltag = 0;
 T->rtag = 0;
 T->lchild = Build_Tree();
 T->rchild = Build_Tree();
 }
 return T;
}
//先序线索化
void Pre_Thread(BTree cur, BTree *pre) {
 if (cur && cur->ltag==0) {
 printf("%c ", cur->data);
 if (cur->lchild == NULL) {
  cur->lchild = *pre;
  (*pre)->ltag = 1;
  cur->ltag = 1;
 }
 if (cur->rchild == NULL) {
  cur->rtag = 1;
 }
 if (*pre && (*pre)->rtag == 1) {
  (*pre)->rchild = cur;
 }
 *pre = cur;
 Pre_Thread(cur->lchild, pre);
 Pre_Thread(cur->rchild, pre);
 }
}
//中序线索化
void In_Thread(BTree cur, BTree *pre) {
 if (cur) {
 In_Thread(cur->lchild, pre);
 printf("%c ", cur->data);
 if (cur->lchild==NULL) {
  cur->lchild = *pre;
  cur->ltag = 1;
 }
 if (cur->rtag == NULL) {
  cur->rtag = 1;
 }
 if (*pre && (*pre)->rtag == 1) {
  (*pre)->rchild = cur;
 }
 *pre = cur;
 In_Thread(cur->rchild, pre);
 }
}
//后序线索化
void Post_Thread(BTree cur, BTree *pre) {
 if (cur) {
 Post_Thread(cur->lchild, pre);
 Post_Thread(cur->rchild, pre);
 printf("%c ", cur->data);
 if (cur->lchild == NULL) {
  cur->lchild = *pre;
  cur->ltag = 1;
 }
 if (cur->rchild == NULL) {
  cur->rtag = 1;
 }
 if (*pre && (*pre)->rtag == 1) {
  (*pre)->rchild = cur;
 }
 *pre = cur;
 }
}
int main(void) {
 BTree T,p=NULL;
 T = Build_Tree();
 Pre_Thread(T, &p);
 //In_Thread(T, &p);
 //Post_Thread(T, &p);
 return 0;
}

上述内容就是C语言中怎么利用递归实现线索二叉树,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联网站建设公司行业资讯频道。

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:C语言中怎么利用递归实现线索二叉树-创新互联
URL地址:http://ybzwz.com/article/jcdoj.html