C语言中如何利用递归实现线索二叉树
发表于:2025-02-20 作者:千家信息网编辑
千家信息网最后更新 2025年02月20日,这篇"C语言中如何利用递归实现线索二叉树"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇
千家信息网最后更新 2025年02月20日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安全错误
数据库的锁怎样保障安全
农行手机银行服务器连接失败
网络安全法搜集信息
微生物基因组数据库
关于网络安全卡通人物
视觉都使用什么软件开发的
云端服务器能拖多少端口
网络安全密钥如何修改
伊瑟拉 服务器
网络安全学哪些课程
长沙软件开发一般多少钱
银行软件开发笔试题目
未受信任的软件开发者
优哥雄鹰网络技术工作室橱窗
三国服务器客服人数
服务器可以带两个主板吗
少年三国志怎么进入高级服务器
网络安全防护能力分析
数据库密码破解
服务器可以带几台显示器
网络安全八条
软件开发专业图片大全
acc数据库的打开方式
dell服务器硬盘安装
辽宁优质软件开发
连接mysql数据库的类
软件开发后产品如何出库入库
dnf韩国服务器在哪里
集成式数据库
宜兴定制软件开发服务电话
服务器怎么查接入电脑型号