当前位置: 首页 > news >正文

二叉树先序线索化及先序线索二叉树找后继

#include <stdio.h> #include <stdlib.h> // 线索二叉树结点 typedef struct ThreadNode { int data; struct ThreadNode *lchild, *rchild; int ltag, rtag; } ThreadNode, *ThreadTree; ThreadNode *pre = NULL; void create(ThreadTree &T) { T = (ThreadNode *)malloc(sizeof(ThreadNode)); T->data = 1; T->ltag = T->rtag = 0; ThreadNode *T2 = (ThreadNode *)malloc(sizeof(ThreadNode)); T2->data = 2; T2->ltag = T2->rtag = 0; T->lchild = T2; ThreadNode *T3 = (ThreadNode *)malloc(sizeof(ThreadNode)); T3->data = 3; T3->ltag = T3->rtag = 0; T->rchild = T3; ThreadNode *T4 = (ThreadNode *)malloc(sizeof(ThreadNode)); T4->data = 4; T4->lchild = T4->rchild = NULL; T4->ltag = T4->rtag = 0; T2->lchild = T4; ThreadNode *T5 = (ThreadNode *)malloc(sizeof(ThreadNode)); T5->data = 5; T5->lchild = T5->rchild = NULL; T5->ltag = T5->rtag = 0; T2->rchild = T5; ThreadNode *T6 = (ThreadNode *)malloc(sizeof(ThreadNode)); T6->data = 6; T6->lchild = T6->rchild = NULL; T6->ltag = T6->rtag = 0; T3->lchild = T6; ThreadNode *T7 = (ThreadNode *)malloc(sizeof(ThreadNode)); T7->data = 7; T7->lchild = T7->rchild = NULL; T7->ltag = T7->rtag = 0; T3->rchild = T7; } void visit(ThreadNode *q){ if(q->lchild == NULL){ q->lchild = pre; q->ltag =1; } if(pre!=NULL && pre->rchild == NULL){ pre->rchild = q; pre->rtag = 1; } pre = q; } void PreThread(ThreadTree T){ if(T!=NULL){ visit(T); if(T->ltag==0){ PreThread(T->lchild); } PreThread(T->rchild); } } //前序线索化二叉树T void createPreThread(ThreadTree T){ pre = NULL; if(T!=NULL){ PreThread(T); if(pre->rchild == NULL){ pre->rtag = 1; } } } //前序线索化二叉树找后继r ThreadNode *NextNode(ThreadNode *p){ //1.如果右孩子是线索,直接返回后继 if(p->rtag == 1){ return p->rchild; } //2.如果右边不是线索(说明必有右孩子) //根据"根-左-右",如果有左孩子,后继就是左孩子 if(p->ltag == 0){ return p->lchild; } return p->rchild; } void PreOrder(ThreadNode *T){ for(ThreadNode *p = T;p!=NULL;p=NextNode(p)){ printf("%d ",p->data); } } int main(){ ThreadTree T; create(T); createPreThread(T); PreOrder(T); return 0; }
http://www.jsqmd.com/news/699879/

相关文章:

  • 2026年佛山高空车出租,优选佛山卓越高空车租赁推荐,TOP五大排名榜解读 - 品牌企业推荐师(官方)
  • VS Code Dev Containers调试失效?揭秘launch.json与container-apps调试协议的3层握手失败根源及修复清单
  • 高级前端需要学习那些东西?
  • 避坑- Qwen3-TTS语言大模型长文本生成的语速变快或声音异常
  • OpenModScan:免费开源的工业Modbus调试工具终极指南
  • sfy recommand
  • VSCode 2026远程同步漏洞预警(CVE-2026-XXXXX):未打补丁将导致增量同步静默失效——附热修复脚本
  • 2026年3月鹅卵石实力厂家推荐,黄色砾石/鹅卵石滤料/地铺鹅卵石/磨圆砾石/五彩鹅卵石/园林鹅卵石,鹅卵石直销厂家推荐 - 品牌推荐师
  • 2026年广州宣传片制作公司辣么多,要如何选择?看完你就晓得了! - 品牌推荐官方
  • 实战复盘:一次内网渗透中,如何利用旧版向日葵客户端获取远程控制权限
  • FAST 论文详解:面向 VLA 机器人大模型的高效动作 Tokenization 方法
  • 选嵌入式培训,到底在选什么?
  • MCP 2026细粒度权限配置最后窗口期:Gartner认证工程师亲授——3类业务系统(SaaS/混合云/边缘IoT)差异化配置矩阵
  • AI Agent Harness Engineering 在电商运营中的全流程自动化
  • 【AI原生开发实战】4.2 MCP协议深度解析:模型上下文协议
  • 斗门区管道疏通,疏通下水道,高压疏通管道,清理化粪池,斗门区疏通厕所,马桶疏通(推荐祥升疏通) - 品牌企业推荐师(官方)
  • 如何安全地管理和分析您的微信聊天记录:WeChatMsg开源解决方案
  • IBM P570小机更换电源步骤
  • 【WinForm UI控件系列】散点图/折线图控件 (支持数值型、时间型、字符串型)
  • 安卓虚拟摄像头终极指南:5分钟学会VCAM视频替换技巧
  • 别再用记事本了!手把手教你用Python+010 Editor高效解决CTF中的编码乱序问题(以GKCTF签到题为例)
  • 前端表格筛选卡顿?智表ZCELL毫秒级响应与全场景筛选方案揭秘
  • 告别钢网!手把手教你用热风枪和普通焊锡丝搞定QFN芯片焊接(附温度曲线详解)
  • 技术深度解析:AlDente电池健康管理系统的架构设计与实现机制
  • 临沂开锁电话,配汽车钥匙,开汽车锁,换锁,临沂指纹锁安装,临沂上门开锁(临沂靠谱商家推荐仟亿锁业) - 品牌企业推荐师(官方)
  • 阶跃 StepAudio 2.5 ASR 上线!500TPS 极速推理,30分钟语音“秒级转写”
  • 如何让旧iPhone/iPad重获新生?Legacy iOS Kit完全指南
  • 多智能体协作自动化编排与拆解SKILL
  • RP2040与MicroMod开发板的嵌入式快速原型设计实践
  • GoFr框架:加速微服务开发的Go语言利器