C语言中如何利用递归实现线索二叉树
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇"C语言中如何利用递归实现线索二叉树"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇
千家信息网最后更新 2025年01月16日C语言中如何利用递归实现线索二叉树
这篇"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语言中如何利用递归实现线索二叉树"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
线索
内容
语言
递归
结点
孩子
指向
指针
文章
知识
篇文章
价值
前驱
大部分
就是
更多
步骤
知识点
行业
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
注册服务器上下行带宽
c 怎么关闭数据库的链接吗
网络安全产品哪家好
迷你是怎么炸mc服务器的
企业没有设立网络安全责任
数据库识别基础知识
网络安全泄密
山西综合软件开发服务价格
中山北路第一小学网络安全
绝世仙王服务器爆满怎么进去
软件开发公司预测表
数据库规范设计方法简述
英雄联盟载入游戏无法连接服务器
上海手机软件开发哪家好
软件开发结算审计
mac服务器域名
wifi添加网络安全性
网络安全模式可以一直用吗
网络安全产品组成
未来星网络技术无纸化考试
中技计算机网络技术就业前景
江苏常规网络技术包括什么
大型软件开发流程详细
云服务公司服务器报废
做计算机网络技术的发达城市
广州电商软件开发哪家可靠
天空天空岛数据库
湖南4u服务器厂家
未来世界的网络安全
汕尾数据链软件开发价目表